錯(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"];
}