Objective-C の辞書(NSDictionaryとNSMutableDictionary)基本概念とよく利用方法

1.不変辞書-NSDictionary

1.1 初期化操作
NSDictionary *dict1=[NSDictionary dictionaryWithObject:numObj1 forKey:@"key1″];
NSLog(@"%@",dict1); //複数の要素を初期化
NSDictionary *dict2=[NSDictionary dictionaryWithObjectsAndKeys:numObj1, @"key1″,numObj2,@"key2″, nil];
NSLog(@"%@",dict2);

1.2 辞書の数を取得
NSInteger count=[dict2 count];
NSLog(@"%ld",count);

1.3 keyにょって相応するvalueオブジェクトを取得
NSString *value=[dict2 objectForKey:@"key1″];
NSLog(@"%@",value);

1.4 辞書のキーから列挙オブジェクトに変換して遍歴に用いる
NSEnumerator *enumerator=[dict2 keyEnumerator];

1.5 すべてのkey集合を取得
NSArray *keys= [dict2 allKeys];
NSLog(@"%@",keys);

1.6 すべてのvalue集合を取得
NSArray *values=[dict2 allValues];
NSLog(@"%@",values);

2.NSDictionaryを継承する可変辞書NSMutableDictionary

2.1 辞書の初期化
NSMutableDictionary *mutableDic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"v1″,@"k1″,@"v2″,@"k2″,@"v3″,@"k3″,@"v4″,@"k4″,@"v5″,@"k5″, nil];

2.2 辞書に指定辞典を追加
NSDictionary *dict4=[NSDictionary dictionaryWithObject:@"v6″ forKey:@"k6″];
[mutableDic addEntriesFromDictionary:dict4];
NSLog(@"%@",mutableDic);

2.3 辞書にvalueとkeyを追加
[mutableDic setValue:@"object" forKey:@"key"];

2.4 空の辞書を作成し、新しい辞書を設定
NSMutableDictionary *mutableDict2=[NSMutableDictionary dictionary];
[mutableDict2 setDictionary:mutableDic];
NSLog(@"%@",mutableDict2);

2.5 指定されたkeyのvalue値を削除
[mutableDict2 removeObjectForKey:@"k4″];

2.6 指定されたkey集合のvalue値を削除
NSArray *arrayKeys=[NSArray arrayWithObjects:@"k1″,@"k2″,@"k3″, nil];
[mutableDict2 removeObjectsForKeys:arrayKeys];
NSLog(@"%@",mutableDict2);

2.7 辞書のすべてのvalueを削除
[mutableDict2 removeAllObjects];
NSLog(@"%@",mutableDict2);
3.列挙遍歴

3.1 一般遍歴
NSArray *allKeys=[mutableDic allKeys];
for (NSInteger i=0; i<[allKeys count]; i++) {
NSString *obj=[mutableDic objectForKey:[allKeys objectAtIndex:i]];
NSLog(@"%@",obj);

3.2 快速遍歴
for (id key in mutableDic) {
NSString *object=[mutableDic objectForKey:key];
NSLog(@"%@",object); }

3.3 イテレータ列挙
NSEnumerator *enumerator1= [mutableDic keyEnumerator];
id key=[enumerator1 nextObject];
while (key) {
id object=[mutableDic objectForKey:key];
NSLog(@"%@",object);

IOS

Posted by arkgame