とについて質問が@[]あり@{}ます。
インターネットから取得したいくつかのコード:
self.searches = [@[] mutableCopy];
self.searchResults = [@{} mutableCopy];
@[]等しい?[NSMutableDictionary dictionary]_@{}等しい?[NSMutableArray array]_
とについて質問が@[]あり@{}ます。
インターネットから取得したいくつかのコード:
self.searches = [@[] mutableCopy];
self.searchResults = [@{} mutableCopy];
@[]等しい?[NSMutableDictionary dictionary]_@{}等しい?[NSMutableArray array]_@[]に等しい。[NSArray array][[NSArray alloc] init]@{}に等しい。[NSDictionary dictionary][[NSDictionary alloc] init](コンテキストと、自動参照カウント (ARC)を使用するかどうかによって異なります)
そういうわけで、[@[] mutableCopy]時々のようなものを見ます。これにより、空の不変配列が作成され、その可変コピーが作成されます。
[NSMutableDictionary dictionary]結果は、またはを使用した場合と同じ[[NSMutableDictionary alloc] init]です。
@{}に等しい[NSDictionary dictionary]
@[]に等しい[NSArray array]
そのため[@[] mutableCopy]、空の不変オブジェクトを作成し、その可変コピーを作成します。効率が悪いとは思えません。
最初の@[]は、配列を作成する省略形です。たとえば、次の 2 つの要素の配列です。
NSArray *array = @[ @"First", @"Second"];
2 番目の@{}は、次のように辞書を作成します。
NSDictionary *dictionary = @{
@"first" : someValue,
@"second" : someValue,
};