不一样的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]来获得键值对应的值。

至于以上简化的方法到底要不要用,还是看自己或者项目组的习惯了,个人建议是在符合统一编码规范的情况下,尽量拥抱变化,毕竟这些都是为了优化生产效率的变化。

posted @ 2014-03-19 13:54  百舸争游  阅读(248)  评论(0编辑  收藏  举报