iPhoneアプリ開発の虎の巻
HOME > NSDictionary

NSDictionary

NSDictionaryはオブジェクトをキー値と要素を対として保持する配列クラスです。
変更可能なクラスとしたい場合は、NSMutableDictionaryクラスを使用します。

NSDictionaryのクラス階層

NSObject ↑ NSDictionary

生成

// 値とキー値を指定した生成例
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"hoge" forKey:@"Key"];

// 値とキー値を複数指定する生成例
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:
  @"hoge", @"name",
  @"999-9999-9999", @"tel",
  @"東京都", @"address",nil];

// 値とキー値を、それぞれNSArray型で指定した生成例
NSArray *key = [NSArray arrayWithObjects:@"name", @"tel", @"address", nil];
NSArray *value =
    [NSArray arrayWithObjects:@"hoge", @"999-9999-9999", @"東京都", nil];
NSDictionary *dic = [NSDictionary dictionaryWithObjects:value forKeys:key];

NSDictionaryのメソッド

【NSDictionaryの主要メソッド】
メソッド名 説明
-(id)objectForKey:(id)aKey 指定したキーの要素を取り出す
(例)"hoge"キーの要素を取り出す
 id yoso = [dic objectForKey:@"hoge"];
-(unsigned int)count 要素数を返す
(例)要素数の取得
 int cnt = [dic count];
-(BOOL)isEqualToDictionary:
(NSDictionary *)otherDictionary
ディクショナリの比較
(例)ディクショナリdic1とdic2が同じ要素であるか比較
 BOOL b = [dic1 isEqualToDictionary:dic2];
-(NSArray*)allKeys ディクショナリからキーだけの配列を取得する
(例)キー値配列の取得
 NSArray *ar = [dic allKeys];
-(NSArray*)allValues ディクショナリから要素だけの配列を取得する
(例)要素配列の取得
 NSArray *ar = [dic allValues];

主要なメソッドのみ掲載しています。
 上記「クラス階層」にあるクラスのメソッドも使用できます。

NSDictionary例文

// ディクショナリを作成する
NSDictionary *metro = [NSDictionary dictionaryWithObjectsAndKeys:
  @"銀座線", @"G",
  @"丸ノ内線", @"M",
  @"日比谷線", @"H",
  @"東西線", @"T",
  @"千代田線", @"C",
  @"有楽町線", @"Y",
  @"半蔵門線", @"Z",
  @"南北線", @"N",
  @"副都心線", @"F",
  nil];

※以下、上記 metro を元とした例文です。

// ディクショナリに含まれる要素数を取得する
int cnt = [metro count];
  cnt → 9
// キー「Z」の値を取り出す
NSString *str = [metro objectForKey:@"Z"]
  str → 半蔵門線
totop