iOS開發之NSDictionary與NSMutableDictionary
NSDictionary不可變字典
1、[NSDictionary dictionaryWithObjectsAndKeys:..]
: 使用鍵值對兒直接建立字典物件,結尾必需使用nil標誌結束。
2、[NSDictionary initWithObjectsAndKeys:..]
:使用鍵值對兒初始化字典物件,結尾必需使用nil標誌結束。
3、[dictionary count]
: 得到字典的長度單位。
4、[dictionary keyEnumerator]
: 將字典的所有KEY儲存在NSEnumerator中,NSEnumerator很像Java語言中的迭代器,使用快速列舉可以遍歷字典中所有儲存KEY值。
5、[dictionary objectEnumerator]
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];
NSMutableDictionary可變字典
NSMutableDictionary 是NSDictionary的子類,所以繼承了NSDictionary的方法。
1、[NSMutableDictionary dictionaryWithCapacity:5]
: 建立一個可變字典初始指定它的長度為5.,動態的新增資料如果超過5這個詞典長度會自動增加,所以不用擔心陣列越界,推薦用這種方式。
2、[NSMutableDictionary initWithCapacity:5]
:只是初始化一個字典的長度為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];