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

前端 未结 2 1210
心在旅途
心在旅途 2020-12-06 19:09

I came across the following:

NSArray *array = @[object1, object2];

It seems to be creating an NSArray, but is this array insta

2条回答
  •  星月不相逢
    2020-12-06 19:31

    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

提交回复
热议问题