NSArray初始化方法

Bas*_*awy 3 initialization objective-c nsarray ios

初始化数组有什么区别

NSArray * array = [NSArray array];
Run Code Online (Sandbox Code Playgroud)

NSArray * array = @[];
Run Code Online (Sandbox Code Playgroud)

bbu*_*bum 9

@[] 是简写:

id a = nil;
NSArray* array = [NSArray arrayWithObjects:&a count:0];
Run Code Online (Sandbox Code Playgroud)

[NSArray array]对于所有意图和目的而言,这实际上只是简写.

这是在特定版本的编译器中添加的功能(并且实际上不需要对此特定语法的运行时支持).

完全不像生成编译时常量@""简写,并且在运行时不会导致消息传递.事实上,(any )是一个特殊情况,它发出一个编译时常量,它在运行时实现零消息传递; 零动力.A 更类似于Objective-C类,而不是对象的常规实例.@""@""@"sequence"@"..."

  • 不; 它确实是一个编译时常量,它通过动态链接器加载,就像类和其他编译时发出的数据一样.没有涉及消息传递. (3认同)

Mik*_*ael 7

NSArray * array = @[]; 是新的做法 NSArray * array = [NSArray array];