初始化数组有什么区别
NSArray * array = [NSArray array];
和
NSArray * array = @[];
初始化数组有什么区别
NSArray * array = [NSArray array];
和
NSArray * array = @[];
@[]
是以下的简写:
id a = nil;
NSArray* array = [NSArray arrayWithObjects:&a count:0];
[NSArray array]
出于所有意图和目的,这实际上只是 的简写。
这是在特定版本的编译器中添加的功能(实际上并不需要对这种特定语法的运行时支持)。
它根本不像生成编译时间常数并且不会在运行时导致消息传递的@""
简写。实际上,(any ) 是一种特殊情况,因为它会发出一个编译时常量,该常量在运行时实现,消息为零;零活力。与对象的常规实例相比, A更类似于 Objective-C 类。@""
@""
@"sequence"
@"..."
NSArray * array = @[];
是新的做事方式NSArray * array = [NSArray array];