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? wattson12 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 It's the new llvm compiler's literal