我碰上了以下内容:@ [obj1,obj2]创建什么样的对象?
NSArray *array = @[object1, object2];
这似乎是创建一个NSArray
,但这个数组实例的自动释放的对象,或者我必须释放呢?
我碰上了以下内容:@ [obj1,obj2]创建什么样的对象?
NSArray *array = @[object1, object2];
这似乎是创建一个NSArray
,但这个数组实例的自动释放的对象,或者我必须释放呢?
这是一个新的集合字面在和Xcode 4.4及以上
@[object1, object2];
出货编译器可等同于
[NSArray arrayWithObjects:object1, object2, nil];
所以是的,它是一个自动释放的对象,如果你需要这个要保留,你可以做
myRetainedArray = [@[object1, object2] retain];
this question已经去了od所有新文字的描述
这是用于创建数组的新的llvm编译器的文字。编译器将其更改为:
NSArray *array = [NSArray arrayWithObjects: object1,object2,nil];
所以它正在返回一个自动释放对象。
谷歌搜索带来了进一步的信息:
“编译器将其更改为:”不,它将其更改为使用'arrayWithObjects:count:'。 – user102008 2012-11-13 00:58:57
而男人是不是真棒!需要一些紫色在我的代码大声笑 – 2012-08-01 12:56:23
如果我需要创建一个不autorelease对象,不能使用上面的文字? – 2012-08-01 13:14:40
你仍然可以使用它,只需保留阵列 – wattson12 2012-08-01 13:15:10