Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What kind of object does @[obj1, obj2] create?

I came across the following:

NSArray *array = @[object1, object2];

It seems to be creating an NSArray, but is this array instance an autoreleased object, or must I release it?

like image 675
S.J. Lim Avatar asked Aug 01 '12 12:08

S.J. Lim


1 Answers

This is a new collection literal available in the compiler that ship with xcode 4.4 and above

@[object1, object2];

is equivalent to

[NSArray arrayWithObjects:object1, object2, nil];

so yes, it is an autoreleased object, if you need this to be retained, you can do

myRetainedArray = [@[object1, object2] retain];

this question has a good description of all of the new literals

like image 116
wattson12 Avatar answered Oct 11 '22 20:10

wattson12