NSDictionary的使用

一、NSDictionary的創(chuàng)建

//字典的創(chuàng)建
    NSDictionary *dic1 = @{@"name":@"李四", @"age":@(24)};
    //這種創(chuàng)建字典的方式   前面的為value后面跟的是key
    NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"李四", @"name", @(24), @"age", nil];
    NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic1];
    NSDictionary *dic4 = [[NSDictionary alloc] init];
    NSDictionary *dic5 = [[NSDictionary alloc] initWithObjectsAndKeys:@"李四", @"name", @(24), @"age", nil];
    NSDictionary *dic6 = [[NSDictionary alloc] initWithDictionary:dic1];
    NSLog(@"%@, %p", dic1, dic1);
    NSLog(@"%@, %p", dic2, dic2);
    NSLog(@"%@, %p", dic3, dic3);
    NSLog(@"%@, %p", dic4, dic4);
    NSLog(@"%@, %p", dic5, dic5);
    NSLog(@"%@, %p", dic6, dic6);
2018-06-28 14:03:47.056395+0800 NSDictionaryDemo[8144:477685] {
    age = 24;
    name = "\U674e\U56db";
}, 0x600000470640
2018-06-28 14:03:47.056587+0800 NSDictionaryDemo[8144:477685] {
    age = 24;
    name = "\U674e\U56db";
}, 0x600000470f40
2018-06-28 14:03:47.056775+0800 NSDictionaryDemo[8144:477685] {
    age = 24;
    name = "\U674e\U56db";
}, 0x600000470640
2018-06-28 14:03:47.057237+0800 NSDictionaryDemo[8144:477685] {
}, 0x60000000dd30
2018-06-28 14:03:47.057511+0800 NSDictionaryDemo[8144:477685] {
    age = 24;
    name = "\U674e\U56db";
}, 0x600000471200
2018-06-28 14:03:47.057997+0800 NSDictionaryDemo[8144:477685] {
    age = 24;
    name = "\U674e\U56db";
}, 0x600000470640

二艳狐、NSDictionary常用屬性

    NSDictionary *dic = @{@"name":@"李四", @"age":@(24)};
    //獲取字典中鍵值對個數(shù)
    NSLog(@"%ld", dic.count);
    //獲取字典中的所有key
    NSLog(@"%@", dic.allKeys);
    //獲取字典中的多有value
    NSLog(@"%@", dic.allValues);
2018-07-02 14:55:28.644107+0800 NSDictionaryDemo[4830:308743] 2
2018-07-02 14:55:28.644297+0800 NSDictionaryDemo[4830:308743] (
    name,
    age
)
2018-07-02 14:55:28.644470+0800 NSDictionaryDemo[4830:308743] (
    "\U674e\U56db",
    24
)

三给僵、NSDictionary常用方法

    NSDictionary *dic = @{@"name":@"李四", @"age":@(24)};
    //通過key值來獲取它多對應(yīng)的value
    NSLog(@"%@", [dic objectForKey:@"name"]);
    //遍歷字典中的數(shù)據(jù)
    [dic enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        NSLog(@"key:%@ value:%@", key, obj);
    }];
    //根據(jù)value值排序凡人,得到key數(shù)組
    NSArray *keyArr = [dic keysSortedByValueUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
        NSString *str1 = [NSString stringWithFormat:@"%@", obj1];
        NSString *str2 = [NSString stringWithFormat:@"%@", obj2];
        return [str1 compare:str2];
    }];
    NSLog(@"%@", keyArr);
2018-07-02 15:06:13.766435+0800 NSDictionaryDemo[5039:322548] 李四
2018-07-02 15:06:13.766611+0800 NSDictionaryDemo[5039:322548] key:name value:李四
2018-07-02 15:06:13.766743+0800 NSDictionaryDemo[5039:322548] key:age value:24
2018-07-02 15:06:13.767102+0800 NSDictionaryDemo[5039:322548] (
    age,
    name
)

四滓玖、NSMutableDictionary的使用

    //NSMutableDictionary繼承于NSDictionary坪哄,所以上面說到的方法和屬性,NSMutableDictionary依然適用
    NSMutableDictionary *muDic1 = [NSMutableDictionary dictionary];
    //創(chuàng)建一個開辟空間大小為1的字典,如果超過他會自動擴大
    NSMutableDictionary *muDic2 = [NSMutableDictionary dictionaryWithCapacity:1];
    
    //向字典中添加數(shù)據(jù)
    [muDic1 setObject:@"李四" forKey:@"name"];
    NSLog(@"%@", muDic1);
    [muDic1 setValue:@(24) forKey:@"age"];
    NSLog(@"%@", muDic1);
    
    //根據(jù)key值刪除字典中的數(shù)據(jù)
    [muDic1 removeObjectForKey:@"age"];
    NSLog(@"%@", muDic1);
    //刪除字典中的所有數(shù)據(jù)
    [muDic1 removeAllObjects];
    NSLog(@"%@", muDic1);
    
    [muDic1 setObject:@"李四" forKey:@"name"];
    [muDic1 setValue:@(24) forKey:@"age"];
    [muDic1 setValue:@"boy" forKey:@"sex"];
    
    //根據(jù)key值數(shù)組刪除對應(yīng)的數(shù)據(jù)
    [muDic1 removeObjectsForKeys:@[@"age", @"name"]];
    NSLog(@"%@", muDic1);
    
    //向字典中添加數(shù)據(jù)的時候翩肌,如果key值已經(jīng)存在那么后來添加同樣key值數(shù)據(jù)饰剥,就會覆蓋以前的數(shù)據(jù)
    [muDic1 setObject:@"girl" forKey:@"sex"];
    NSLog(@"%@", muDic1);
    
    [muDic2 setObject:@"shanghai" forKey:@"address"];
    [muDic2 setObject:@"3000" forKey:@"income"];
    
    //把另一個字典中的所有數(shù)據(jù)添加到當前字典中。當出現(xiàn)相同key的時候摧阅,后面的值也會覆蓋原值
    [muDic1 addEntriesFromDictionary:muDic2];
    NSLog(@"%@", muDic1);
2018-07-02 15:28:58.889004+0800 NSDictionaryDemo[5375:350081] {
    name = "\U674e\U56db";
}
2018-07-02 15:28:58.889190+0800 NSDictionaryDemo[5375:350081] {
    age = 24;
    name = "\U674e\U56db";
}
2018-07-02 15:28:58.889317+0800 NSDictionaryDemo[5375:350081] {
    name = "\U674e\U56db";
}
2018-07-02 15:28:58.889429+0800 NSDictionaryDemo[5375:350081] {
}
2018-07-02 15:28:58.889676+0800 NSDictionaryDemo[5375:350081] {
    sex = boy;
}
2018-07-02 15:28:58.889766+0800 NSDictionaryDemo[5375:350081] {
    sex = girl;
}
2018-07-02 15:28:58.889875+0800 NSDictionaryDemo[5375:350081] {
    address = shanghai;
    income = 3000;
    sex = girl;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绷蹲,隨后出現(xiàn)的幾起案子棒卷,更是在濱河造成了極大的恐慌,老刑警劉巖祝钢,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件比规,死亡現(xiàn)場離奇詭異,居然都是意外死亡拦英,警方通過查閱死者的電腦和手機蜒什,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疤估,“玉大人灾常,你說我怎么就攤上這事×迥矗” “怎么了钞瀑?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長慷荔。 經(jīng)常有香客問我雕什,道長,這世上最難降的妖魔是什么显晶? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任贷岸,我火速辦了婚禮,結(jié)果婚禮上磷雇,老公的妹妹穿的比我還像新娘偿警。我一直安慰自己,他們只是感情好唯笙,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布户敬。 她就那樣靜靜地躺著,像睡著了一般睁本。 火紅的嫁衣襯著肌膚如雪尿庐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天呢堰,我揣著相機與錄音抄瑟,去河邊找鬼。 笑死,一個胖子當著我的面吹牛皮假,可吹牛的內(nèi)容都是我干的鞋拟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼惹资,長吁一口氣:“原來是場噩夢啊……” “哼贺纲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起褪测,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤猴誊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后侮措,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體懈叹,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年分扎,在試婚紗的時候發(fā)現(xiàn)自己被綠了澄成。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡畏吓,死狀恐怖墨状,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情菲饼,我是刑警寧澤歉胶,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站巴粪,受9級特大地震影響通今,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肛根,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一辫塌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧派哲,春花似錦臼氨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至褂乍,卻和暖如春持隧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逃片。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工屡拨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓呀狼,卻偏偏與公主長得像裂允,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哥艇,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

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

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 29,417評論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,111評論 1 32
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理绝编,服務(wù)發(fā)現(xiàn),斷路器貌踏,智...
    卡卡羅2017閱讀 134,702評論 18 139
  • 50=1十饥? 數(shù)學(xué)老師看到一定會大跌眼鏡,給你一個大大的叉號哩俭。 語文老師一定會開動腦筋從修辭和主題方面給你分析分析:...
    時慧慧愛物閱讀 439評論 2 1
  • 我算是接觸互聯(lián)網(wǎng)比較早的谬运,這么多年隙赁,見證了不少牛人的成長歷程。但直到去年梆暖,才決定開始運營自媒體伞访。 自媒體這個詞兒,...
    成成日志閱讀 391評論 0 1