- [__ NSPlaceholderArray initWithObjects:count:]:尝试从对象[0]'中插入nil对象。

时间:2012-11-10 06:19:27

标签: iphone ios xcode uitableview

我正在使用UITableview我在tableview单元格上显示图像,标题,日期和位置名称。当我点击tableview单元格时,它将导航到详细信息view.in连续进程tableview到详细视图,反之亦然。在一些导航后当我点击我的UITableview单元格时,我的应用程序崩溃了。

2 个答案:

答案 0 :(得分:27)

NSArray旨在保存每个元素的对象 - nil永远不会是任何NSArray索引的有效值。

错误表明你的程序正在创建一个长度非零的数组,并且第一个元素是nil。


Hunch:你已经声明了一个文字,相当于:

NSNumber * n = nil;
NSArray * a = @[n]; // << runtime error creating this array

当然,您的程序可能会直接调用-[NSArray initWithObjects:count:]

答案 1 :(得分:0)

1-定义一个安全的宏 #define $safeArgs(...) [NSOrderedSet orderedSetWithObjects:__VA_ARGS__, nil]

2-然后使用 NSArray *array = [$safeArgs("objectsToSanitize") allObjects];

这将使用一个集来清理你的nil对象,然后将它们放入一个数组