NSLog(@" --- object id = %ld --- ",
(long) [mp_list objectAtIndex : 0]);
target_coordinate_2D = [[mp_list objectAtIndex : 0] coordinate];
// Some test code here which verifies that target_coordinate_2D
// gets assigned a valid "coordinate" value.
[mapView addAnnotation : [mp_list objectAtIndex : 0]];
考虑以上3个陈述:
根据文档,NSArray的方法“objectAtIndex”应该返回一个对象。我的理解是返回的值是指向对象的数字指针。
但我得到的是:
--- object id = 0 ---
'NSInvalidArgumentException', reason: '-[... addObject:]: attempt to insert nil'
我的问题是:
1
为什么“对象ID”为零?由于target_coordinate_2D被赋予了有效值, [mp_list objectAtIndex:0]确实应该是一个有效“坐标”的有效对象 属性。
2
在最后一个语句中,我希望将mp_list中的对象添加到mapView中。 NS例外 模拟器抛出的是“[mp_list objectAtIndex:0]”的事实 确实没有。因此,我必须有一些关于NSArray的错过。应该是什么 完成以便将对象分配给另一个数组中的数组?
希望在这个领域有人知道可以帮助......
答案 0 :(得分:4)
听起来mp_list
本身就是nil
,这就是[mp_list objectAtIndex:0]
返回nil
的原因(因为消息nil
返回nil
)。
答案 1 :(得分:0)
不确定这是否正确,但是在你的NSLog中,你将对象打印出来的时间很长?据我所知,你只能把对象放在NSArray中,你不能把原始类型放在它们中。所以它可能是你在数组中放入的数据。