简介
在编写OC代码的时候,我们经常会用到NSString,NSNumber,NSArray,NSDictionary.... 等Foundation框架的东西。
然后尽量用字面量语法。
例如:
正面教材:
NSString *someString = @"SomeString"
NSNumber *someNumber = @1
反面教材:
NSString *someString = [[NSString alloc]initWithFormat:@"SomeString"];
NSNumber *someNumber = [NSNumber numberWithInt]
字面量数组
不使用字面量语法:
正面教材:
NSArray *animals = @[@"cat",@"dag",@"mouse",nil]
反面教材:
NSArray *animals = [NSArray arrayWithObjects:@"cat",@"dag",@"mouse",nil];
这样做的目的,使代码可读性变高。
这里还有一个小差别这俩种方法。
id object1 = @"SomeString";
id object2 = nil;
id object3 = @"SomeString"
NSArray *arrayA = [NSArray arrayWithObjects:object1,object2,object3,nil];
NSArray *arrayB = @[object1,object2,object3];
这个时候arrayA能正常运行,因为 object2 = nil 所以arrayA 里面只有一个元素(object1),而arrayB就会奔溃。
相比之下,还是arrayB这样的方法比较能直观的发现错误的存在。这也是字面量的一个好处
总结
- 应该直接使用字面量方法创建字符串,数值,数组,字典。提高可读性
- 应该通过下标了访问数组 -> arrayA[1] = .....