4

私は見た

NSArray *objectsToShare = @[objects];

いくつかのサンプルコードを見るとき。

@[objects]ここの意味は何ですか?

4

4 に答える 4

8
NSArray *objectsToShare = @[objects];

と同じです

NSArray *objectsToShare = [NSArray arrayWithObjects:objects count:count];
于 2013-03-26T11:15:08.057 に答える
6

Objective-Cではリテラルとも呼ばれます

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

AppleLLVMコンパイラを使用する場合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
               ;

詳細については、このチュートリアルをお読みください

于 2013-03-26T11:24:11.760 に答える
0

オブジェクト「オブジェクト」である1つのオブジェクトで配列を作成します

于 2013-03-26T11:15:00.920 に答える
0

これは、LLVMコンパイラーに追加された新機能です。で配列を作成できます

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

可変配列を作成することはできず、オブジェクトのリストをで終了する必要がないことに注意してくださいnil。WWDC2012のビデオ「LLVMの新機能」をご覧ください。

于 2013-03-26T22:09:06.073 に答える