web-dev-qa-db-ja.com

NSMutableDictionaryオブジェクトの追加

オブジェクトをNSMutableDictionaryに追加する方法は、単純な反復よりも効率的ですか?

例:

// Create the dictionary

NSMutableDictionary *myMutableDictionary = [NSMutableDictionary dictionary];    

// Add the entries

[myMutableDictionary setObject:@"Stack Overflow" forKey:@"http://stackoverflow.com"];
[myMutableDictionary setObject:@"SlashDotOrg" forKey:@"http://www.slashdot.org"];
[myMutableDictionary setObject:@"Oracle" forKey:@"http://www.Oracle.com"];

ちょうど好奇心が強い、私はこれがそれをしなければならない方法であると確信しています。

28
djt9000

事前にすべてのオブジェクトとキーがある場合は、NSDictionaryを使用して初期化できます。

dictionaryWithObjects:forKeys:

もちろん、これは変更不可能な不変辞書を提供します。必要な用途によって異なりますが、NSDictionaryから変更可能なコピーを取得できますが、その場合は元のコードを使用する方が簡単です:

NSDictionary * dic = [NSDictionary dictionaryWith....];
NSMutableDictionary * md = [dic mutableCopy];
... use md ...
[md release];
15
stefanB
NSDictionary *entry = [NSDictionary dictionaryWithObjectsAndKeys:
  [NSNumber numberWithDouble:acceleration.x], @"x",
  [NSNumber numberWithDouble:acceleration.y], @"y",
  [NSNumber numberWithDouble:acceleration.z], @"z",
  [NSDate date], @"date", 
  nil];
20
Andrew Johnson

始めている人に情報を追加させてください。

objective-c literals を使用すると、よりわかりやすい構文でNSDictionaryを作成できます。

NSDictionary *dict = @{ 
    key1 : object1, 
    key2 : object2, 
    key3 : object3 };
8
Tiago Almeida
NSMutableDictionary *example = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@5,@"burgers",@3, @"milkShakes",nil];

オブジェクトはキーの前に来ます。

0
Jeremiah Radich