2012-08-01 23 views

Trả lời

9

Đây là một bộ sưu tập mới theo nghĩa đen có sẵn trong trình biên dịch mà tàu với xcode 4.4 trở lên

@[object1, object2]; 

được tương đương với

[NSArray arrayWithObjects:object1, object2, nil]; 

nên có, nó là một đối tượng autoreleased, nếu bạn cần điều này để được giữ lại, bạn có thể làm

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

this question có một lần mô tả od của tất cả các chữ mới

+1

Và người đàn ông không phải là nó tuyệt vời! cần một số màu tím trong mã của tôi lol –

+0

nếu tôi cần phải tạo ra một đối tượng không autorelease, không thể sử dụng trên chữ? –

+0

bạn vẫn có thể sử dụng nó, chỉ giữ lại mảng sau – wattson12

0

Đó là chữ cái của trình biên dịch llvm mới để tạo mảng. Trình biên dịch thay đổi điều này thành:

NSArray *array = [NSArray arrayWithObjects: object1,object2,nil]; 

Vì vậy, nó sẽ trả về một đối tượng tự động.

tìm kiếm

Một Google lớn lên biết thêm thông tin:

http://clang.llvm.org/docs/ObjectiveCLiterals.html

+1

"Trình biên dịch thay đổi điều này thành:" Không, nó thay đổi nó để sử dụng 'mảngWithObjects: count:'. – user102008

Các vấn đề liên quan