不一样的NSNumber、NSArray和NSDictionary
最新的OC语法里还添加了许多类似脚本语言的特性,例如以前要生成NSNumber满费劲,都是[NSNumber numberWith***]的写法,太多冗余。现在方便了,可以用@符号替代,例如[NSNumber numberWithChar:‘c’]可以直接表示为@'c',[NSNumber numberWithInt:123]直接表示为@123,[NSNumber numberWithFloat:1.23f]z直接写为@1.23f,其他类型同理变换。
NSArray的变化也是类似的,[NSArray array]就是@[],[NSArray arrayWithObject:x]就是 @[x],[NSArray arrayWithObjects:x, y, z, nil]就是@[x, y, z],不过这种方式生成的是NSArray,要生成NSMutableArray呢?也简单,直接调用mutableCopy即可,例如[@[x, y, z] mutableCopy]。如果要访问第1个元素,以前需要写成[array objectAtIndex:0],现在可以直接用array[0]访问,像极了脚本语言。
NSDictionary的变化和NSArray类似,不同的是用@{},例如[NSDictionary dictionaryWithObject:value forKey:key]可以表示为@{key: value}。访问时也和大多数脚本语言一样,用dict[key]来获得键值对应的值。
至于以上简化的方法到底要不要用,还是看自己或者项目组的习惯了,个人建议是在符合统一编码规范的情况下,尽量拥抱变化,毕竟这些都是为了优化生产效率的变化。

浙公网安备 33010602011771号