我正在使用UITableview我在tableview单元格上显示图像,标题,日期和位置名称。当我点击tableview单元格时,它将导航到详细信息view.in连续进程tableview到详细视图,反之亦然。在一些导航后当我点击我的UITableview单元格时,我的应用程序崩溃了。
答案 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对象,然后将它们放入一个数组