我遇到了以下几点:
NSArray *array = @[object1, object2];
这似乎是创建一个NSArray
,但就是这个数组实例的自动释放的对象,或者我必须释放呢?
我遇到了以下几点:
NSArray *array = @[object1, object2];
这似乎是创建一个NSArray
,但就是这个数组实例的自动释放的对象,或者我必须释放呢?
这是一个新的集合字面可在和Xcode 4.4及以上船舶的编译器
@[object1, object2];
相当于
[NSArray arrayWithObjects:object1, object2, nil];
所以,是的,它是一个自动释放的对象,如果您需要此得以保留,你可以做
myRetainedArray = [@[object1, object2] retain];
这个问题有各种新文字的一个很好的说明
这是新的LLVM编译器的字面创建数组。 编译器会将此改为:
NSArray *array = [NSArray arrayWithObjects: object1,object2,nil];
因此,它是返回一个自动释放的对象。
谷歌搜索带来了进一步的信息:
http://clang.llvm.org/docs/ObjectiveCLiterals.html