3

初始化数组有什么区别

NSArray * array = [NSArray array];

NSArray * array = @[];
4

2 回答 2

9

@[]是以下的简写:

id a = nil;
NSArray* array = [NSArray arrayWithObjects:&a count:0];

[NSArray array]出于所有意图和目的,这实际上只是 的简写。

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

它根本不像生成编译时间常数并且不会在运行时导致消息传递的@""简写。实际上,(any ) 是一种特殊情况,因为它会发出一个编译时常量,该常量在运行时实现,消息为零;零活力。与对象的常规实例相比, A更类似于 Objective-C 类。@""@""@"sequence"@"..."

于 2013-01-23T16:11:55.250 回答
7

NSArray * array = @[];是新的做事方式NSArray * array = [NSArray array];

于 2013-01-23T15:47:10.370 回答