iOS 字典 (字典添加磁餐、字典刪除、字典寫入沙盒中崖媚、沙盒中讀取字典、將一個字典鍵值添加到另外一個字典中等)

閑話少說,先上Demo

Github地址:https://github.com/Jerryisme/DictionaryUsage

NSDictionary官方API文檔

NSMutableDictionary官方API文檔

常用方法

不可變字典

#pragma mark - 不可變字典
- (void)setUpDictionary {
    // 字典  所以 ---> 文字內(nèi)容(key ---> value)  里面存儲的都是鍵值對
    NSDictionary *dic0 = [NSDictionary dictionary];
    NSLog(@"創(chuàng)建空字典---    %@\n", dic0);
    
    NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"jerry" forKey:@"name"];
    NSLog(@"創(chuàng)建字典dic1---    %@\n", dic1);
    
    // 查找key對應的value
    id obj1 = [dic1 objectForKey:@"name"];
    NSLog(@"查找key對應的value obj1---    %@\n", obj1);
    
    NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:@[@"jerry", @"3"] forKeys:@[@"name", @"old"]];
    NSLog(@"創(chuàng)建字典dic2---    %@\n", dic2);
    
    id obj2 = [dic2 objectForKey:@"old"];
    NSLog(@"查找key對應的value obj2---    %@\n", obj2);
    
    // 很少用
    NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"jerry", @"name", @"3", @"old", @"man", @"sex", nil];
    NSLog(@"創(chuàng)建字典dic3---    %@\n", dic3);
    
    id obj3 = [dic3 objectForKey:@"sex"];
    NSLog(@"查找key對應的value obj3---    %@\n", obj3);
    
    NSDictionary *dic4 = @{@"address":@"shanghai", @"birthday":@"2000-01-01"};
    NSLog(@"創(chuàng)建字典dic4---    %@\n", dic4);
    
    id obj4 = dic4[@"address"];
    NSLog(@"查找key對應的value obj4---    %@\n", obj4);
    
    // 獲取字典鍵值對個數(shù)
    NSLog(@"獲取字典鍵值對個數(shù)---    %ld\n", dic4.count);
    
    // 獲取字典中所有key
     NSLog(@"獲取字典中所有key---    %@\n", [dic4 allKeys]);
    NSEnumerator *enumKeys = [dic4 keyEnumerator];
    for (NSObject *obj in enumKeys){
        NSLog(@"enumKey: %@", obj);
    }
    for (NSObject *obj in dic4){
        NSLog(@"key in dict: %@", obj);
    }
    
    // 獲取字典中所有value
     NSLog(@"獲取字典中所有value---    %@\n", [dic4 allValues]);
    NSEnumerator *enumValues = [dic4 objectEnumerator];
    for (NSObject *obj in enumValues){
        NSLog(@"value in dict: %@", obj);
    }
    
    // 字典寫入沙盒中荠呐,沙盒中讀取字典
    [self writeAndContents];
}

可變字典

#pragma mark - 可變字典
- (void)setUpNSMutableDictionary {
    NSMutableDictionary *mutableDic = [@{@"address":@"shanghai", @"birthday":@"2000-01-01", @"name":@"haha"} mutableCopy];
    NSLog(@"創(chuàng)建字典mutableDic---    %@\n", mutableDic);
    
    // 添加鍵值對
    NSMutableDictionary *mutableDic0 = [NSMutableDictionary dictionary];
    [mutableDic0 setObject:@"jerry" forKey:@"name"];
    [mutableDic0 setObject:@"3" forKey:@"old"];
    [mutableDic0 setObject:@"tom" forKey:@"name"];
    
    id obj = mutableDic0[@"name"];
    NSLog(@"查找key對應的value obj---    %@\n", obj);
    
    // 將一個字典鍵值添加到另外一個字典中,如果B里面key如果A里面存在相同的key的話也會替換value
    [mutableDic addEntriesFromDictionary:mutableDic0];
    NSLog(@"將一個字典鍵值添加到另外一個字典中呵恢,如果B里面key如果A里面存在相同的key的話也會替換valuemutableDic---    %@\n", mutableDic);
    
    [mutableDic setValuesForKeysWithDictionary:@{@"love":@"eat", @"name":@"TT"}];
    NSLog(@"把B里面鍵值對添加字典A里面---    %@\n", mutableDic);
    
    // 替換整個字典
    [mutableDic setDictionary:mutableDic0];
    NSLog(@"替換整個字典---    %@\n", mutableDic);
    
    // 可以指定“鍵”的方式刪除字典中對應的“鍵值對”渗钉,如果該Key不存在,則不做任何操作
    [mutableDic0 removeObjectForKey:@"old"];
    
    // 清空整個字典的數(shù)據(jù)
    [mutableDic0 removeAllObjects];
}

字典寫入沙盒中鳄橘,沙盒中讀取字典

#pragma mark - 字典寫入沙盒中芒炼,沙盒中讀取字典
- (void)writeAndContents {
    // 獲取Documents目錄
    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    // 字典寫入文件
    // 創(chuàng)建一個存儲字典的文件路徑
    NSString *fileDicPath = [docPath stringByAppendingPathComponent:@"bug.txt"];
    NSDictionary *dic = @{@"name":@"jerry", @"old":@"3"};
    
    // 字典寫入時執(zhí)行的方法
    [dic writeToFile:fileDicPath atomically:YES];
    NSLog(@"字典寫入時執(zhí)行的方法---    %@\n", fileDicPath);
    
    // 從文件中讀取數(shù)據(jù)字典的方法
    NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:fileDicPath];
    NSLog(@"從文件中讀取數(shù)據(jù)字典的方法---    %@\n", resultDic);
}

字典轉(zhuǎn)化字符串

#pragma mark - 字典轉(zhuǎn)化字符串
+ (NSString*)dictionaryToJson:(NSDictionary *)dic
{
    NSError *parseError = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
    
    return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

字符串轉(zhuǎn)字典

#pragma mark - 字符串轉(zhuǎn)字典
+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString
{
    if (jsonString == nil) {
        return nil;
    }
    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *err;
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err];
    if(err) {
        NSLog(@"json解析失斁ㄅ取:%@",err);
        return nil;
    }
    return dic;
}

最后,覺得有用記得給個喜歡??!非常感謝!

簡書個人主頁:http://www.reibang.com/u/281c41cc90bc
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末暗挑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子炸裆,更是在濱河造成了極大的恐慌蝙寨,老刑警劉巖嗤瞎,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贝奇,死亡現(xiàn)場離奇詭異靠胜,居然都是意外死亡,警方通過查閱死者的電腦和手機浪漠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門址愿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人响谓,你說我怎么就攤上這事〖奚螅” “怎么了赖晶?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捂贿。 經(jīng)常有香客問我涩堤,道長分瘾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任白魂,我火速辦了婚禮,結果婚禮上福荸,老公的妹妹穿的比我還像新娘肴掷。我一直安慰自己背传,他們只是感情好台夺,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梳星,像睡著了一般滚朵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辕近,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音移宅,去河邊找鬼。 笑死盏浇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的绢掰。 我是一名探鬼主播童擎,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼班挖!你這毒婦竟也來了芯砸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤双揪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后渔期,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡拘哨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年宅静,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姨夹。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡矾策,死狀恐怖磷账,靈堂內(nèi)的尸體忽然破棺而出贾虽,到底是詐尸還是另有隱情,我是刑警寧澤蓬豁,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布地粪,位于F島的核電站取募,受9級特大地震影響玩敏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旺聚,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一眶蕉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧造挽,春花似錦、人聲如沸刽宪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毁欣。三九已至岳掐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間串述,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工纲酗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留新蟆,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓吮螺,卻偏偏與公主長得像帕翻,于是被迫代替她去往敵國和親鸠补。 傳聞我的和親對象是個殘疾皇子嘀掸,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353