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のメソッド
メソッド名 | 説明 |
---|---|
-(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 → 半蔵門線