今天编写程序运行时,遇到一个问题
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[1]'
提示数组越界。
我主要目的想实现将model模型里的数据存到数组里指定位置,然后在tableviewCell遍历时获取对应的数组元素。
_dataArray[indexPath.section][indexPath.row]
所以我在tableview生成之前先 写好数组
_dataArray = @[@[_model.userName,_model.sex,_model.birthday,_model.idNo,_model.mobile],
@[_model.orgName,_model.address,_model.contactTel]];
程序运行在此报错数组越界。
经查询,原因是数组元素_model.address字段内容是nil. 而 nil 被用来作为集合结束的标志符,不能存储在集合里
正确做法是 接口数据字典转模型时,通过NSJSONSerialization,若有nil会自动转化成NSNull类型。NSNull对象是可以存入集合里的。
参考1:
http://blog.sina.com.cn/s/blog_4b14751d0100gfvq.html
参考2:nil/Nil/NULL/NSNull
http://www.cocoachina.com/industry/20140409/8128.html
http://www.cocoachina.com/industry/20140424/8225.html