今天再把NSDictionary的一些方法歸歸類,做一個工具博客出來产场。
NSDictionary
一:NSDictionary的初始化
NSDictionary *dic = @{@"name":@"lilei",@"age":@"13"};
NSDictionary *dic1 = [NSDictionary new];
NSDictionary *dic2 = [[NSDictionary alloc]initWithDictionary:dic1];
NSDictionary *dic3 = [[NSDictionary alloc]initWithObjectsAndKeys:@"lilei",@"name",@"13",@"age", nil];
NSArray *keyArray = @[@"name",@"age"];
NSArray *valueArray = @[@"lilei",@"13"];
NSDictionary *dic4 = [[NSDictionary alloc]initWithObjects:valueArray forKeys:keyArray];
二:NSDictionary的屬性
NSDictionary *dic = @{@"name":@"lilei",@"age":@"13"};
NSInteger count = dic.count; // 字典里鍵值對的個數(shù)
NSArray *allKeys = dic.allKeys; // 字典里的所有鍵
NSArray *allValues = dic.allValues; // 字典里的所有值
NSString *description = dic.description; // 字典的描述字符串
三:NSDictionary的一些常用方法
1:返回字典內(nèi)一個值對應(yīng)的所有鍵
NSDictionary *dic = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSArray *array = [dic allKeysForObject:@"13"];
返回的array是 @[@"age",@"class"];
2:是否完全與另一個字典相同
NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSDictionary *dic2 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
BOOL isSame = [dic1 isEqualToDictionary:dic2];
返回YES
3:使用block來遍歷字典的鍵值對
NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
[dic1 enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
// 遍歷字典的所有鍵值對
}];
[dic1 enumerateKeysAndObjectsWithOptions:NSEnumerationReverse usingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
// 倒序遍歷字典的所有鍵值對
}];
4:讓字典按照value的大小順序來對keys鍵值進(jìn)行排序
NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"4",@"A",@"6",@"C",@"5",@"B",nil];
NSArray *array = [dic1 keysSortedByValueUsingSelector:@selector(compare:)];
NSLog(@"排序鍵值對%@",array);
array的值為 @[@"A",@"B",@"C"];
跟NSArray一樣,有Function【函數(shù)】泼橘,Comparator【比較】涝动,Selector【選擇器】幾種方式來進(jìn)行排序
NSMutableDictionary
1:講一個字典中的所有屬性新增到可變字典中
NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSMutableDictionary *mDic = [NSMutableDictionary new];
[mDic addEntriesFromDictionary:dic1];
2:從可變字典中移除鍵值對
NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSMutableDictionary *mDic = [[NSMutableDictionary alloc]initWithDictionary:dic1];
[mDic removeObjectForKey:@"name"]; // 移除name的鍵值對
[mDic removeAllObjects]; // 移除所有鍵值對
3:修改或新增可變數(shù)組的鍵值對【如果新增的鍵值對本來就有,則修改否則新增】
NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSMutableDictionary *mDic = [[NSMutableDictionary alloc]initWithDictionary:dic1];
[mDic setObject:@"hanmeimei" forKey:@"name"]; // 更新了原有的name鍵值對
[mDic setObject:@"color" forKey:@"white"]; // 新增了值為white的color鍵值對