Ios 这些NSArray初始化方法有何不同?
可能重复:Ios 这些NSArray初始化方法有何不同?,ios,objective-c,cocoa,Ios,Objective C,Cocoa,可能重复: 初始化数组和 NSArray * array = [NSArray array]; 及 这两者是相似的 [NSArray array]和@[]创建并返回空数组 @[]是Objective-C中添加的一项新功能。它可以装箱多种对象,并为您提供快捷方式表示法的灵活性 当使用Apple LLVM compiler 4.0或更高版本时,数组、字典和 可以使用创建数字(NSArray、NSDictionary、NSNumber类) 文本语法而不是方法。文字语法使用@符号 与[]、{}、()
初始化数组和
NSArray * array = [NSArray array];
及
这两者是相似的
[NSArray array]
和@[]
创建并返回空数组
@[]
是Objective-C中添加的一项新功能。它可以装箱多种对象,并为您提供快捷方式表示法的灵活性
当使用Apple LLVM compiler 4.0或更高版本时,数组、字典和
可以使用创建数字(NSArray、NSDictionary、NSNumber类)
文本语法而不是方法。文字语法使用@符号
与[]、{}、()组合以创建上述类,
分别
更多参考资料,这两者都是相似的
[NSArray array]
和@[]
创建并返回空数组
@[]
是Objective-C中添加的一项新功能。它可以装箱多种对象,并为您提供快捷方式表示法的灵活性
当使用Apple LLVM compiler 4.0或更高版本时,数组、字典和
可以使用创建数字(NSArray、NSDictionary、NSNumber类)
文本语法而不是方法。文字语法使用@符号
与[]、{}、()组合以创建上述类,
分别
更多参考资料,这两个表达式通常是等效的 列出了对象文字的警告: 使用literal或boxed表达式语法创建的对象不保证由运行时唯一指定,但也不保证它们是新分配的。因此,对对象文本的位置执行直接比较(使用==,!=,=)的结果定义不明确。这通常是用于调用
isEqual:
方法(或compare:
方法)的代码中的一个简单错误
正如文档所述,上面列出的警告仅在对象之间使用直接比较运算符时出现,这几乎总是不是预期的操作。这种行为应该无关紧要,因此这两个表达式几乎总是可以互换使用。这两个表达式通常是等效的 列出了对象文字的警告: 使用literal或boxed表达式语法创建的对象不保证由运行时唯一指定,但也不保证它们是新分配的。因此,对对象文本的位置执行直接比较(使用==,!=,=)的结果定义不明确。这通常是用于调用
isEqual:
方法(或compare:
方法)的代码中的一个简单错误
正如文档所述,上面列出的警告仅在对象之间使用直接比较运算符时出现,这几乎总是不是预期的操作。这种行为应该无关紧要,因此两者几乎可以互换使用。现代目标C中的
@[]
是[NSArray array]
的捷径
请检查以便更好地理解
据我所知,当您使用@[]时,这将等同于相应的类方法。指:
@[] = [NSArray array];
@[@"M",@"P"] = [NSArray arrayWithObjects:@"M",@"P",nil];
@[]
是[NSArray array]
在现代目标C中的快捷方式
请检查以便更好地理解
据我所知,当您使用@[]时,这将等同于相应的类方法。指:
@[] = [NSArray array];
@[@"M",@"P"] = [NSArray arrayWithObjects:@"M",@"P",nil];
你看过WWDC 2011的视频吗(101-欢迎公告)?它详细地描述了这段甚至更好的视频:我喜欢@[]…而且,在发布之前搜索这个网站也不会有什么坏处。你看过WWDC 2011视频(101-欢迎发布的事情)吗?它详细描述了这段甚至更好的视频:我喜欢@[]…而且,在发布之前搜索这个网站也不会有什么坏处。