2013-03-26 55 views

回答

8
NSArray *objectsToShare = @[objects]; 

相同

NSArray *objectsToShare = [NSArray arrayWithObjects:objects count:count]; 
+4

嚴格地說,它是不一樣的'initWithObjects',但'arrayWithObjects:計數:'(比較http://stackoverflow.com/a/14527582/1187415)。它返回一個自動釋放對象,列表中'nil'的處理是不同的。 – 2013-03-26 11:20:40

0

它使一個對象的一個​​陣列那對象 「對象」

6

它也被稱爲在字面的Objective-C

Examples 
Immutable array expression: 
NSArray *array = @[ @"Hello", NSApp, [NSNumber numberWithInt:42] ]; 

使用Apple時LLVM編譯器4.0 or later,數組,字典和數字也可以使用字面語法而不是方法來創建(NSArray, NSDictionary, NSNumber classes)。[22]文字語法使用@符號[], {},(),組合。

實施例而不文字:

NSArray *myArray = [NSArray arrayWithObject:someObject]; 
NSDictionary *myDictionary = [NSDictionary dictionaryWithObject:someObject forKey:@"key"]; 
NSNumber *myNumber = [NSNumber numberWithInt:myInt]; 

實施例與文本:

NSArray *myArray = @[ someObject ]; 
NSDictionary *myDictionary = @{ @"key" : someObject }; 
NSNumber *myNumber = @(myInt); 


objc-at-expression : '@' (string-literal | encode-literal | selector-literal | protocol-literal | object-literal) 
        ; 

object-literal : ('+' | '-')? numeric-constant 
       | character-constant 
       | boolean-constant 
       | array-literal 
       | dictionary-literal 
       ; 

boolean-constant : '__objc_yes' | '__objc_no' | 'true' | 'false' /* boolean keywords. */ 
       ; 

array-literal : '[' assignment-expression-list ']' 
       ; 

assignment-expression-list : assignment-expression (',' assignment-expression-list)? 
          | /* empty */ 
          ; 

dictionary-literal : '{' key-value-list '}' 
        ; 

key-value-list : key-value-pair (',' key-value-list)? 
       | /* empty */ 
       ; 

key-value-pair : assignment-expression ':' assignment-expression 
       ; 

有關的詳細信息Read this Tutorial

+1

@Downvoter請留下評論,爲什麼投票然後用戶可以改善答案在需要的地方。 – Popeye 2013-03-26 11:30:23

+1

+1,因爲你的答案一般都很好,我看不出有什麼問題,所以不要相信你應該爲此付出代價。 – Popeye 2013-03-26 11:32:06

+1

好的概括性解釋,可以幫助讀者理解,這不是降級到數組。謝謝。 – Jeremy 2013-03-26 13:48:08

0

它是一個新的功能添加到LLVM編譯器。您可以創建

NSArray *array = @[object1, ...]; 

注意一個數組,你不能創建一個可變的數組,你不需要結束的對象列表與nil。觀看WWDC 2012視頻「LLVM中的新功能」。