NSDictionary

今天再把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鍵值對
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炬灭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子靡菇,更是在濱河造成了極大的恐慌重归,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厦凤,死亡現(xiàn)場離奇詭異鼻吮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)较鼓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門椎木,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人博烂,你說我怎么就攤上這事香椎。” “怎么了禽篱?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵畜伐,是天一觀的道長。 經(jīng)常有香客問我躺率,道長玛界,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任悼吱,我火速辦了婚禮慎框,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘后添。我一直安慰自己笨枯,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布吕朵。 她就那樣靜靜地躺著猎醇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪努溃。 梳的紋絲不亂的頭發(fā)上硫嘶,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機(jī)與錄音梧税,去河邊找鬼沦疾。 笑死称近,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哮塞。 我是一名探鬼主播刨秆,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忆畅!你這毒婦竟也來了衡未?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤家凯,失蹤者是張志新(化名)和其女友劉穎缓醋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绊诲,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡送粱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了掂之。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抗俄。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖世舰,靈堂內(nèi)的尸體忽然破棺而出动雹,到底是詐尸還是另有隱情,我是刑警寧澤冯乘,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布洽胶,位于F島的核電站,受9級特大地震影響裆馒,放射性物質(zhì)發(fā)生泄漏姊氓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一喷好、第九天 我趴在偏房一處隱蔽的房頂上張望翔横。 院中可真熱鬧,春花似錦梗搅、人聲如沸禾唁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荡短。三九已至,卻和暖如春哆键,著一層夾襖步出監(jiān)牢的瞬間掘托,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工籍嘹, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留闪盔,地道東北人弯院。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像泪掀,于是被迫代替她去往敵國和親听绳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

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