博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Prefer Literal Syntax over the Equivalent methods
阅读量:6035 次
发布时间:2019-06-20

本文共 1503 字,大约阅读时间需要 5 分钟。

hot3.png

多使用字面量语法,少用和它等价的方法。从 Objective-C 1.0 开始,使用“字符串字面量”来创建 NSString 对象会更加简单。

    NSString *someString = @"Effective Objective-C 2.0";    // 不使用字面量封值的方式 和 使用字面量创建实例的方式    NSNumber *someNumber = [NSNumber numberWithInt:1];    // 使用了字面量    NSNumber *someNumber = @1;    NSNumber *floatNumber = @1.77f;    NSNumber *boolNumber = @YES;    NSNumber *charNumber = @'z';    // 使用字面量来表示数值的好处在于,让 NSNumber 对象变得更加简洁,省去了多余的语法成分。    // 数组对象用两种创建方式    NSArray *animals = [NSArray arrayWithObjects:@"cat", @"dog", @"tiger", nil];    NSString *dog = [animals objectAtIndex: 1];    NSArray *animals = @[@"cat", @"dog", @"tiger"];    NSString *dog = animals[1];    // 字面量创建的数组对象在取值的时候更加的便捷    // 字典对象的两种创建方式    NSDictionary *personData = [NSDictionary dictionaryWithObjectsAndKeys:                                             @"Herbert", @"firstName",                                            @"Hu", @"lastName",                                            nil];    NSString *last = [personData objectForKey:@"lastName"];    // 用字面量语法创建字典时,一旦有值为 nil , 会抛出异常。    NSDictionary *personData = @{@"firstName": @"Herbert",                                        @"lastName": @"Hu"};    NSString *lastName = personData[@"lastName"];

使用字面量创建出来的字符串、数组、字典对象都是不可变的。如果想要可变版本,则需复制一份:

    // 再创建一个对象    NSMutableArray *mutable = [ @[ @1, @2, @3] mutableCopy];

总结

  • 使用字面量来创建字符串、数值、数组、字典对 象。和创建这些类对象的常规方法相比,使用字面量更加简明。

  • 通过取下表操作来访问数组下表或字典中的键所对应的元素。

  • 用字面量语法创建的数组或字典,元素中如果出现 nil ,则会抛出异常。

                                                                                                                                                                     Jan 26, 2015

转载于:https://my.oschina.net/herbert77/blog/500630

你可能感兴趣的文章
接口测试(三)--HTTP协议简介
查看>>
周志华《机器学习》课后答案——第4章.决策树
查看>>
frameset分帧问题
查看>>
特殊样式:ime-mode禁汉字,tabindex焦点
查看>>
linux
查看>>
Layout父元素点击不到的解决办法
查看>>
【面试次体验】堆糖前端开发实习生
查看>>
基于apache实现负载均衡调度请求至后端tomcat服务器集群的实现
查看>>
C#+QQEmail自动发送邮件
查看>>
[Hadoop]MapReduce多输出
查看>>
Android Activity详解(一)
查看>>
快准车服完成3000万元A+轮融资,年底将开始B轮融资
查看>>
让我去健身的不是漂亮小姐姐,居然是贝叶斯统计!
查看>>
MySQL 数据约束
查看>>
我的友情链接
查看>>
SERVLET容器简介与JSP的关系
查看>>
《服务器SSH Public Key认证指南》-补充
查看>>
我的友情链接
查看>>
Java break continue return 的区别
查看>>
算法(Algorithms)第4版 练习 1.3.4
查看>>