5

重複の可能性:
Xcode 4.4リリースノートに記載されている「Objective-Cリテラル」の詳細は何ですか?

とについて質問が@[]あり@{}ます。

インターネットから取得したいくつかのコード:

self.searches = [@[] mutableCopy]; 
self.searchResults = [@{} mutableCopy]; 
  1. @[]等しい?[NSMutableDictionary dictionary]_
  2. @{}等しい?[NSMutableArray array]_
4

3 に答える 3

10
  1. 番号はまたは@[]に等しい。[NSArray array][[NSArray alloc] init]
  2. 番号はまたは@{}に等しい。[NSDictionary dictionary][[NSDictionary alloc] init]

(コンテキストと、自動参照カウント (ARC)を使用するかどうかによって異なります)

そういうわけで、[@[] mutableCopy]時々のようなものを見ます。これにより、空の不変配列が作成され、その可変コピーが作成されます。

[NSMutableDictionary dictionary]結果は、またはを使用した場合と同じ[[NSMutableDictionary alloc] init]です。

于 2012-11-28T14:12:25.827 に答える
1

@{}に等しい[NSDictionary dictionary]

@[]に等しい[NSArray array]

そのため[@[] mutableCopy]、空の不変オブジェクトを作成し、その可変コピーを作成します。効率が悪いとは思えません。

于 2012-11-28T14:12:10.507 に答える
0

最初の@[]は、配列を作成する省略形です。たとえば、次の 2 つの要素の配列です。

NSArray *array = @[ @"First", @"Second"];

2 番目の@{}は、次のように辞書を作成します。

NSDictionary *dictionary = @{
    @"first" : someValue,
    @"second" : someValue,
};
于 2012-11-28T14:15:33.917 に答える