NSDictionary不可變字詞典
1、[NSDictionary dictionaryWithObjectsAndKeys:..]
: 使用鍵值對(duì)兒直接創(chuàng)建字典對(duì)象,結(jié)尾必需使用nil標(biāo)志結(jié)束。
2、[NSDictionary initWithObjectsAndKeys:..]
:使用鍵值對(duì)兒初始化字典對(duì)象,結(jié)尾必需使用nil標(biāo)志結(jié)束。
3、[dictionary count]
: 得到字典的長(zhǎng)度單位。
4、[dictionary keyEnumerator]
: 將字典的所有KEY儲(chǔ)存在NSEnumerator中,NSEnumerator很像Java語(yǔ)言中的迭代器,使用快速枚舉可以遍歷字典中所有儲(chǔ)存KEY值。
5、[dictionary objectEnumerator]
: 將字典的所有value儲(chǔ)存在NSEnumerator中,用法和上面差不多可用來(lái)遍歷KEY對(duì)應(yīng)儲(chǔ)存的Value值。
6、[dictionary objectForKey:key]
: 通過(guò)傳入KEY對(duì)象可以拿到當(dāng)前KEY對(duì)應(yīng)儲(chǔ)存的值。
使用示例:
創(chuàng)建字典
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];
創(chuàng)建多個(gè)字典
NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:
@"xbyvalue1", @"xbykey1",
@"xbyvalue2", @"xbykey2",
@"xbyvalue3", @"xbykey3",
@"xbyvalue4", @"xbykey4",
nil];
根據(jù)現(xiàn)有的字典創(chuàng)建字典
NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];
根據(jù)key獲取value
NSDictionary *dic =[dic3 objectForKey:@"key3"];
獲取字典數(shù)量
NSInteger count = dic3.count;
所有的鍵集合
NSArray *keys = [dic3 allKeys];
所有值集合
NSArray *values = [dic3 allValues];
NSMutableDictionary可變字典
NSMutableDictionary 是NSDictionary的子類(lèi),所以繼承了NSDictionary的方法。
1、[NSMutableDictionary dictionaryWithCapacity:5]
: 創(chuàng)建一個(gè)可變字典初始指定它的長(zhǎng)度為5.,動(dòng)態(tài)的添加數(shù)據(jù)如果超過(guò)5這個(gè)詞典長(zhǎng)度會(huì)自動(dòng)增加,所以不用擔(dān)心數(shù)組越界,推薦用這種方式。
2、[NSMutableDictionary initWithCapacity:5]
:只是初始化一個(gè)字典的長(zhǎng)度為5。
3、[dictionary setObject:@"value" forKey:@"key"]
:向可變的字典動(dòng)態(tài)的添加數(shù)據(jù) 。如果字典中存在這個(gè)KEY的數(shù)據(jù)則直接替換這個(gè)KEY的值。
4、[dictionary removeAllObjects..]
: 刪除掉詞典中的所有數(shù)據(jù)。
5、[dictionary removeObjectForKey..]
:刪除掉詞典中指定KEY的數(shù)據(jù) 。
使用示例
創(chuàng)建可變字典
NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc]initWithObjectsAndKeys:
@"xbyvalue1", @"xbykey1",
@"xbyvalue2", @"xbykey2",
@"xbyvalue3", @"xbykey3",
@"xbyvalue4", @"xbykey4",
nil];
添加現(xiàn)有的字典數(shù)據(jù)
[mutableDic addEntriesFromDictionary:dic3];
添加新的鍵值對(duì)象
[mutableDic setValue:@"set1" forKey:@"setKey1"];
以新的字典數(shù)據(jù)覆蓋舊的字典數(shù)據(jù)
[mutableDic setDictionary:dic2];
根據(jù)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];
}
根據(jù)key數(shù)組刪除元素
[mutableDic removeObjectsForKeys:keys];
刪除所有元素
[mutableDic removeAllObjects];