1.字典的創(chuàng)建
/*
字典:保存數(shù)據(jù)的一種工具
分類:不可變字典数苫、可變字典
詳情:通過鍵(key)-值(value)的形式存儲數(shù)據(jù)
注意:
1之拨、value可以相同,key必須唯一
2、字典保存對象類型
3堂竟、key一般為字符串
4糠聪、字典中的多個key-value是沒有順序的
*/
不可變字典
//創(chuàng)建空字典
NSDictionary *dic1 = [NSDictionary dictionary];
NSDictionary *dic2 = [[NSDictionary alloc] init];
//對像方法創(chuàng)建
NSDictionary *dic3 = [[NSDictionary alloc] initWithObjectsAndKeys:@"sunck", @"1", @"is", @"2", @"a", @"3", @"good", @"4", @"man", @"5", nil];
NSLog(@"dic3 = %@", dic3);
//注意:前后兩個數(shù)組(數(shù)據(jù)婆排,鍵值)一一對應的
NSDictionary *dic4 = [[NSDictionary alloc] initWithObjects:@[@"sunck", @"is", @"a", @"good", @"man"] forKeys:@[@"1", @"2", @"3", @"4", @"5"]];
//通過已存在的字典創(chuàng)建新的字典
NSDictionary *dic5 = [[NSDictionary alloc] initWithDictionary:dic4];
//類方法:
NSDictionary *dic6 = [NSDictionary dictionaryWithObjectsAndKeys:@"sunck", @"1", @"is", @"2", @"a", @"3", @"good", @"4", @"man", @"5", nil];
NSDictionary *dic7 = [NSDictionary dictionaryWithObjects:@[@"sunck", @"is", @"a", @"good", @"man"] forKeys:@[@"1", @"2", @"3", @"4", @"5"]];
NSDictionary *dic8 = [NSDictionary dictionaryWithDictionary:dic4];
//注意:鍵值之間用:鏈接声旺,多個鍵值對用,分隔笔链,最后省略了nil
NSDictionary *dic9 = @{@"1": @"sunck", @"2": @"is", @"3": @"a", @"4": @"good", @"5": @"man"};
不可變字典的其他方法
//取值
NSDictionary *dic1 = @{@"1": @"sunck", @"2": @"is", @"3": @"a", @"4": @"good", @"5": @"man", @"6": @"Oh", @"7": @"he", @"8": @"is", @"9": @"good"};
NSLog(@"dic1 = %@", dic1);
//取一個值
NSString *str = [dic1 objectForKey:@"3"];
NSString *str2 = dic1[4];
//取多個值
NSArray * arr1 = [dic1 objectsForKeys:@[@"1",@"2",@"3"] notFoundMarker:@"NotFound"];
//取s所有的值
NSArray *value = [dic1 allValues];
//取所有的key
NSArray *key = [dic1 allKeys];
//取出所有value對應的key
NSArray *key3 = [dic1 allKeysForObject:@"sdd"];
//遍歷字典
//針對字典來說段只,in的前面是字典中的key
//in的后面是要遍歷的集合(數(shù)組、字典)
for (NSString *key in dic1) {
NSString *value = [dic1 objectForKey:key];
}
//枚舉遍歷
NSEnumerator *emumer = [dic1 keyEnumerator];
id keyString = nil;
while (keyString = [emumer nextObject]) {
NSString *value = [dic1 objectForKey:keyString ];
}
2.可變字典的增刪改查
//增
NSMutableDictionary *mutDic = [[NSMutableDictionary alloc]initWithObjects:@[@"sun", @"is", @"a", @"good", @"man"] forKeys:@[@"1", @"2", @"3", @"4", @"5"]];
//增加一個鍵值對
[mutDic setObject:@"sdf" forKey:@"7"];
//增加多個鍵值對,
//注意:如果增加時鉴扫,鍵值對鍵一樣赞枕,原數(shù)據(jù)會被修改為當前數(shù)據(jù)
[mutDic addEntriesFromDictionary:@{@"6":@"sdf",@"3":@"sdf"}];
//刪
[mutDic removeObjectForKey:@"6"];
//刪除多個
[mutDic removeObjectsForKeys:@"6",@"5"];
//刪除所有的
[mutDic removeAllObjects];
//改
NSMutableDictionary *mutDic3 = [[NSMutableDictionary alloc] initWithObjects:@[@"sunck", @"is", @"a", @"good", @"man", @"!"] forKeys:@[@"1", @"2", @"3", @"4", @"5", @"6"]];
[mutDic3 setObject:@"nice" forKey:@"4"];
NSLog(@"mutDic3-1 = %@", mutDic3);
[mutDic3 setValue:@"handsome" forKey:@"4"];
NSLog(@"mutDic3-2 = %@", mutDic3);
//將字典替換為后面的字典
[mutDic3 setDictionary:mutDic1];