往字典里赋值有时候不成功的原因???

例1. NSMutableDictionary *dicPara = [NSMutableDictionary dictionaryWithObjectsAndKeys:_address,@"address",lonti,@"longtitude",lati,@"latitude",_poiname,@"poiname",_province,@"province",_city,@"city",_district,@"district",_street,@"street",nil];
例2. NSMutableDictionary *dicPara = [NSMutableDictionary dictionaryWithObjectsAndKeys:_addressL,@"address",lonti,@"longtitude",lati,@"latitude",remark,@"remark",customer_id,@"customer_id",nil];
[dicPara setObject:POIName forKey:@"poiname"];
[dicPara setObject:province forKey:@"province"];
[dicPara setObject:city forKey:@"city"];
[dicPara setObject:district forKey:@"district"];
[dicPara setObject:street forKey:@"street"];

例1是我开始写的,打印字典,发现里面的值有一部分不存在的
然后我采取了下面例2的赋值方法,发现赋值成功了虽然成功了,但是我不知道原因是什么,请大神指点迷津

阅读 3.3k
2 个回答

dictionaryWithObjectsAndKeys 使用该方法初始化可变字典的时候 需要保证字典内部的值不为空 如果为空的话 字典接收到空值之后就会默认后面的键值全部为空 会移除掉。
比如:
图片描述

clipboard.png

还有setValue方法 和 setObject方法的区别是 setValue 方法会调用setObject方法 如果value为空的话 会调用removeObject方法

新手上路,请多包涵

Dictionary容器不能存储nil

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题