最終更新:2013-01-11 (金) 05:55:09 (4122d)  

NSDictionary
Top / NSDictionary

Objective-C

使い方

使い方メソッド名メモ
要素だけで初期化dictionaryWithObject?最後はnil
キーを指定して初期化dictionaryWithObjectsAndKeys?最後はnil。value,keyの順。
すべてのキーallKeys?
特定のキーの値を取得objectForKey

Xcode 4.4で導入された@リテラル

//Xcode 4.4~
NSDictionary *executives = @{@"CEO" : firstPerson,
                             @"CTO" : secondPerson};

//Xcode 4.3以前
NSArray* titles = [NSArray arrayWithObjects:@"CEO", @"CTO", nil];
NSArray* persons = [NSArray arrayWithObjects:firstPerson, secondPerson, nil];
NSDictionary *executives = [NSDictionary dictionaryWithObjects:persons
                                                       forKeys:titles];

NSDictionary* dict;

//要素を追加
dict=[NSDictionary dictionaryWithObject:@"value" forKey:@"key"];
//最後の要素はnilにする
dict=[NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",@"value3",@"key3",nil];

//要素を取り出してループ
NSEnumerator* enum = [dict keyEnumerator];
NSString* key;
while (key = [enum nextObject]){
  NSSting* value;
  value = [dict objectForKey:key];
  NSLog(@"key is %@, value is %@.",key,value);
}


//Fast Enumeration
// キーでループする場合
for (id i in [dict keyEnumerator]) {
  // なんか処理
}
// 値でループする場合
for (id i in [dict objectEnumerator]) {
  // なんか処理
}

[dict setObject:@"value" forKey:@"key"];//追加
[dict removeAllObjects];//要素を削除
[dict removeObjectsForKey:@"key"];
[dict removeObjectsForKeys:(NSArray)keyArray];

参考