NSDictionary 使用細(xì)節(jié)

NSDictionary創(chuàng)建有兩種方法,
1.NSDictionary *dic =@{@"xxx":@"xxx”};
2.NSDictionary *dic =[NSDictionary dictionaryWithObjectsAndKeys:string01,@"xxx",string02,@“xxx”,string03,@"xxx",nil];

區(qū)別在于:
但是用第一種創(chuàng)建的dic里面的元素一定不能為空,否則就會(huì)崩潰。
但是第二種也有缺陷 當(dāng)string01 為空的時(shí)候 string02 后面的也會(huì)變null

解決方案:
當(dāng)object有可能為nil的時(shí)候,采用setObject:forKey:

NSString* string1 = nil;

NSString* string2 = @"string2";

NSMutableDictionary* dic = [NSMutableDictionary dictionary];

if (string1) {

    [dic setObject:string1 forKey:@"string1"];

}

if (string2) {

    [dic setObject:string2 forKey:@"string2"];

}

[dic setObject:@"string3" forKey:@"string3"];

當(dāng)然還有更便捷的方法,使用setValue:forKey:

NSString* string1 = nil;

NSString* string2 = @"string2";

NSMutableDictionary* dic = [NSMutableDictionary dictionary];

[dic setValue:string1 forKey:@"string1"];

[dic setValue:string2 forKey:@"string2"];

[dic setValue:@"string3" forKey:@"string3"];

請(qǐng)注意,setValue:forKey:與setObject:forKey:不完全等同,最大的區(qū)別有兩點(diǎn):

  1. setValue:forKey:只接受NSString*類型的key
  2. setValue:forKey:當(dāng)value為nil時(shí),將調(diào)用removeObjectForKey:
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 整理出的一些簡(jiǎn)單實(shí)用的OC筆試題,如有錯(cuò)誤之處希望大家及時(shí)提出,以便修改,不誤人子弟.1、不會(huì)立刻使引用計(jì)數(shù)器改變...
    李xiao屁的憂傷閱讀 3,102評(píng)論 1 20
  • 1. 熟悉Git的基本流程 git clone git add -A git commit -m " " git ...
    9bf19a4010ab閱讀 1,783評(píng)論 0 2
  • 數(shù)組: 系統(tǒng)提供的數(shù)組類:類似于C語言中的數(shù)組功能。 數(shù)組是一個(gè)大容器,數(shù)組中可以儲(chǔ)存不同的聯(lián)系對(duì)象,但必須要保證...
    Sherry宇閱讀 435評(píng)論 0 0
  • #if 0 //字典:用來存儲(chǔ)具有以一一對(duì)應(yīng)關(guān)系的數(shù)據(jù),本質(zhì)上也是一個(gè)大容器 //自定義初始化方式 NSDicti...
    修木頭閱讀 503評(píng)論 0 0
  • 一、類和對(duì)象 1.定義:類是具有相同特征和行為的事物的抽象,對(duì)象是類的具體化,類是對(duì)象的類型。 2.面向?qū)ο蟮娜?..
    陳亮宇閱讀 457評(píng)論 1 6

友情鏈接更多精彩內(nèi)容