iOS開発のNSDictionaryとNSMutable Dictionary

5532 ワード

NSDictionary可変辞書
1、[NSDictionary dictionaryWithObjectsAndKeys:..]:キーパッドのペアを使って直接辞書の対象を作成し、終わりにはnilマークで終わらなければなりません.2、[NSDictionary initWithObjectsAndKeys:..]:キーパッドを使って辞書の対象を初期化し、終わりにはnilフラグを使って終了しなければならない.3、[dictionary count]:辞書の長さの単位を得る.4、[dictionary keyEnumerator]:辞書のKEYをNSEnumeratorに記憶し、NSEnumeratorはJava言語のローズマリーに似ています.迅速な列挙を使って、辞書の中にKEY値を全部遍歴することができます.5、[dictionary objectEnumerator]:辞書のすべてのvalueをNSEnumeratorに格納し、使い方は上記とほぼ同じで、KEY対応する保存されたValue値を遍歴するために使用することができる.6、[dictionary objectForKey:key]:KEYオブジェクトに着信することにより、現在のKEY対応貯蔵の値を取得することができる.
使用例:辞書の作成
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];
複数の辞書を作成
NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:
                              @"xbyvalue1", @"xbykey1",
                              @"xbyvalue2", @"xbykey2",
                              @"xbyvalue3", @"xbykey3",
                              @"xbyvalue4", @"xbykey4",
                              nil];
辞書を既存の辞書に基づいて作成します.
NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];
keyによってvalueを取得する
NSDictionary *dic =[dic3 objectForKey:@"key3"];
辞書の数を取得
NSInteger count = dic3.count;
すべてのキーセット
NSArray *keys = [dic3 allKeys];        
すべての値セット
NSArray *values = [dic3 allValues];
NSMuttable Dictionary可変辞書
NSMuttable DictionaryはNSDictionaryのサブクラスなので、NSDictionaryの方法を継承しました.1、[NSMutableDictionary dictionaryWithCapacity:5]:可変辞書を作成して、最初にその長さを指定します.動的な追加データは5を超えると、この辞書の長さが自動的に増加します.だから、行列が境界を越えることを心配しなくてもいいです.このような方法をオススメします.2、[NSMutableDictionary initWithCapacity:5]:1つの辞書を初期化するだけの長さは5です.3、[dictionary setObject:@"value" forKey:@"key"]:可変辞書にデータを動的に追加する.辞書にこのKEYのデータがあるなら、直接にこのKEYの値を置換します.4、[dictionary removeAllObjects..]:辞書の中のすべてのデータを削除します.5、[dictionary removeObjectForKey..]:辞書からKEYを指定したデータを削除します.
例を使って可変辞書を作成します.
NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc]initWithObjectsAndKeys:
                                           @"xbyvalue1", @"xbykey1",
                                           @"xbyvalue2", @"xbykey2",
                                           @"xbyvalue3", @"xbykey3",
                                           @"xbyvalue4", @"xbykey4", 
                                            nil];
既存の辞書データを追加
[mutableDic addEntriesFromDictionary:dic3];
新しいキーオブジェクトを追加します.
[mutableDic setValue:@"set1" forKey:@"setKey1"];
新しい辞書データで古い辞書データを上書きします.
[mutableDic setDictionary:dic2];
keyによるvalueの削除
[mutableDic removeObjectForKey:@"key1"];
クイック巡回
for(id key in mutableDic) {
  NSLog(@"key :%@  value :%@", key, [mutableDic objectForKey:key]);
}
列挙遍歴
NSEnumerator *enumerator = [mutableDic keyEnumerator];
id key = [enumerator nextObject];
while (key) {
  NSLog(@"enumerator :%@", [mutableDic objectForKey:key]);
  key = [enumerator nextObject];
}   
要素をkey配列から削除します.
[mutableDic removeObjectsForKeys:keys];      
すべての要素を削除
[mutableDic removeAllObjects];