NSArrayやNSMutableArrayみたいな配列は順番に検索するか、値の位置を特定することが必要なんだけど、Objective-Cだと、PHPなどでいう連想記憶とほぼ同じ使い方ができるディクショナリ(辞書?)っていう仕組みを使えるNSDictionaryクラスがある。
定義はこんな感じになる。
NSDictionary* dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"value", @"key", nil];
コードはこんな感じで書いてみる。
// ディクショナリを定義 id object = nil; NSDictionary* dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"nagoya", @"aichi", @"gifu", @"gifu", @"tsu", @"mie", nil]; // キーから値を検索して出力 object = [dictionary objectForKey:@"aichi"]; NSLog(@"aichi = %@", object); // キーで検索できない場合を出力 object = [dictionary objectForKey:@"tokyo"]; NSLog(@"tokyo = %@", object);
NSArrayやNSMutableArrayと違うとこは、値を配列のインデックスを使ってとってくるんじゃなく、キーの値で取得ってとこ。
実行した結果はこんな感じ。
ディクショナリにないキーを指定すると、nilになるとこがミソかも。
2010-10-29 01:09:19.667 Dictionary[21951:a0f] aichi = nagoya 2010-10-29 01:09:19.719 Dictionary[21951:a0f] tokyo = (null)
んまま、そんなとこで。