iOS 字典和數(shù)組插入nil崩潰的問(wèn)題

錯(cuò)誤日志:DictionaryTextDemo[29390:1329578] Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: ' -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[1]'
objects[1]說(shuō)明是第二個(gè)value值為空

//使用這種方式初始化的話,如果value有為nil的,會(huì)直接崩潰
NSDictionary *dictionary =@{@"key1" : value1,@"key2" : value2,@"key3" : value3};

//使用這種方式初始化,雖然可以避免崩潰,但是會(huì)導(dǎo)致nil被默認(rèn)為結(jié)尾,造成后面不為nil的value缺失
NSDictionary *dictionary = [[NSDictionaryalloc]initWithObjectsAndKeys:value1,@"key1",value2,@"key2", value3 ,@"value3",nil];

最合理的方法還是對(duì)可能為空的value進(jìn)行判斷,可以用三目運(yùn)算直接在上面兩行代碼里判斷,也可以做if語(yǔ)句判斷然后決定是否添加

//三目
NSDictionary *dictionary =@{@"key1" : (value1?:@"")};

//if判斷
NSMutableDictionary *dic = [NSMutableDictionary arrayWith...];
if(value1)
{
    [dic setObject:value1 forKey@"key1"];
}
最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,569評(píng)論 0 13
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,753評(píng)論 18 399
  • I found a thing today.when you be absorbed ...
    李心然xxxx閱讀 128評(píng)論 0 0
  • (其一) 未雨先繆本智舉, 長(zhǎng)思遠(yuǎn)慮累連身。 憑君借問(wèn)啼笑語(yǔ), 勞架拖恩莫生嫌。 (其二) 欖枝頻邀聚, 牽我客無(wú)...
    村客閱讀 446評(píng)論 0 3
  • #我能怎么樣,我也很絕望啊# #原創(chuàng) 接受意見(jiàn)和建議# #謝謝打開(kāi)# 你說(shuō)要和我在一起的時(shí)候我真的覺(jué)得自己是上...
    北辰南溟閱讀 165評(píng)論 0 0

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