簡單分享下,希望大牛們多多指點迷津,逐步修改,完善不足支持。借鑒之處,還請諒解
#pragma mark NSDictionary的初始化
NSDictionary *dict=[NSDictionary dictionaryWithObject:@"v" forKey:@"k1"];
//NSDictionary是不可變的
NSLog(@"%@",dict[@"k1"]); //[dict objectForKey:@"k1"]
//字典的鍵,如同數組的索引,只不過鍵是OC對象:array[index]
dict=[NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2", nil]; //最常用
dict=@{@"k1":@"v1",@"k2":@"v2"}; //快速創建字典
NSArray *objects=[NSArray arrayWithObjects:@"v1",@"v2",@"v3", nil];
NSArray *keys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3", nil];
dict=[NSDictionary dictionaryWithObjects:objects forKeys:keys];
#pragma mark NSDictionary的常用方法
NSLog(@"%zi",dict.count); //計算有多少個鍵值對
id obj=[dict objectForKey:@"k2"]; //根據鍵取出值:id類型
//NSDictionary不可變,只能取值,不能修改
NSString *path=@"/Users/administrator/Desktop/text.txt";
[dict writeToFile:path atomically:YES]; //將字典寫入文件中(xml格式)
dict=[NSDictionary dictionaryWithContentsOfFile:path];
//從文件(xml格式)中讀取內容
NSArray *alkeys=[dict allKeys]; //返回所有鍵(亂序)
NSArray *alobjs=[dict allValues]; //返回所有值
NSArray *okeys=[dict allKeysForObject:@"v2"]; //返回一個值對應的所有鍵
NSArray *objs=[dict objectsForKeys:keys notFoundMarker:@"not"];
//如果鍵找不到對應值時,用mark代替
#pragma mark NSDictionary遍歷
for (id key in dict){ //for-in:遍歷字典的所有key
id value=[dict objectForKey:key]; //對應鍵取出值
}
NSEnumerator *enumer=[dict keyEnumerator]; //對象迭代器
//key迭代器遍歷 & [dict objectEnumerator];-value迭代器遍歷
id key=nil;
while (key=[enumer nextObject]) {
id value=[dict objectForKey:key];
}
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
//block遍歷
NSLog(@"%@---%@",key,obj);
}];
//內存管理問題:創建類的對象放入字典,會做一次retain操作,當字典被銷毀時,所有鍵值都會release一次
#pragma mark NSMutableDictionary 可變字典
NSMutableDictionary *dic=[NSMutableDictionary dictionary];
[dic addEntriesFromDictionary:dict]; //添加其他字典到當前字典中
[dic setObject:@"v" forKey:@"k"];
[dic removeObjectForKey:@"k"]; //刪除對應鍵的值
[dic removeAllObjects]; //刪除所有鍵值對
[dic removeObjectsForKeys:keys]; //刪除多個鍵的值
//字典沒有排序屬於亂序