NSDictionary

今天再把NSDictionary的一些方法歸歸類,做一個(gè)工具博客出來(lái)。

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; // 字典里鍵值對(duì)的個(gè)數(shù)
NSArray *allKeys = dic.allKeys; // 字典里的所有鍵
NSArray *allValues = dic.allValues; // 字典里的所有值
NSString *description = dic.description;  // 字典的描述字符串

三:NSDictionary的一些常用方法

1:返回字典內(nèi)一個(gè)值對(duì)應(yīng)的所有鍵

NSDictionary *dic = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSArray *array = [dic allKeysForObject:@"13"];

返回的array是 @[@"age",@"class"];

2:是否完全與另一個(gè)字典相同

NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSDictionary *dic2 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
BOOL isSame = [dic1 isEqualToDictionary:dic2];

返回YES

3:使用block來(lái)遍歷字典的鍵值對(duì)

NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
[dic1 enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        // 遍歷字典的所有鍵值對(duì)
}];
[dic1 enumerateKeysAndObjectsWithOptions:NSEnumerationReverse usingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        // 倒序遍歷字典的所有鍵值對(duì)
}];

4:讓字典按照value的大小順序來(lái)對(duì)keys鍵值進(jìn)行排序

NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"4",@"A",@"6",@"C",@"5",@"B",nil];
NSArray *array = [dic1 keysSortedByValueUsingSelector:@selector(compare:)];
NSLog(@"排序鍵值對(duì)%@",array);

array的值為 @[@"A",@"B",@"C"]; 跟NSArray一樣,有Function【函數(shù)】,Comparator【比較】,Selector【選擇器】幾種方式來(lái)進(jìn)行排序

NSMutableDictionary

1:講一個(gè)字典中的所有屬性新增到可變字典中

NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSMutableDictionary *mDic = [NSMutableDictionary new];
[mDic addEntriesFromDictionary:dic1];

2:從可變字典中移除鍵值對(duì)

NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSMutableDictionary *mDic = [[NSMutableDictionary alloc]initWithDictionary:dic1];
[mDic removeObjectForKey:@"name"]; // 移除name的鍵值對(duì)
[mDic removeAllObjects]; // 移除所有鍵值對(duì)

3:修改或新增可變數(shù)組的鍵值對(duì)【如果新增的鍵值對(duì)本來(lái)就有,則修改否則新增】

NSDictionary *dic1 = @{@"name":@"lilei",@"age":@"13",@"class":@"13"};
NSMutableDictionary *mDic = [[NSMutableDictionary alloc]initWithDictionary:dic1];
[mDic setObject:@"hanmeimei" forKey:@"name"]; // 更新了原有的name鍵值對(duì)
[mDic setObject:@"color" forKey:@"white"]; // 新增了值為white的color鍵值對(duì)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容