我遇到了以下情况:
NSArray *array = @[object1, object2];
它似乎是在创建一个NSArray
,但这个数组实例是一个自动释放的对象,还是我必须释放它?
答案 0 :(得分:9)
这是xcode 4.4及更高版本
附带的编译器中可用的新集合文字@[object1, object2];
相当于
[NSArray arrayWithObjects:object1, object2, nil];
所以是的,它是一个自动释放的对象,如果你需要保留它,你可以做到
myRetainedArray = [@[object1, object2] retain];
this question对所有新文字都有很好的描述
答案 1 :(得分:0)
这是用于创建数组的新llvm编译器的文字。编译器将其更改为:
NSArray *array = [NSArray arrayWithObjects: object1,object2,nil];
所以它返回一个自动释放的对象。
Google搜索带来了更多信息: