【发布时间】:2016-08-09 16:59:13
【问题描述】:
当我尝试将表格视图中的动态单元格出列时,它会使应用程序崩溃并给我以下错误:尝试从对象 [0] 插入 nil 对象。我检查了我的标识符并确保界面生成器中的所有字段都没有错误。
let cell = tableView.dequeueReusableCellWithIdentifier("ForceTouchRatingCell", forIndexPath: indexPath)
我已经设置了断点,并且肯定它在代码中的那个点崩溃了。我查看了 Stack 和网络上的多个主题,其中很多都建议注册单元格。据我所知,如果单元格是动态单元格,则无需显式注册该单元格,因为这是自动处理的。
此外,tableview 所在的 ViewController 正在从情节提要中实例化并用作强制触摸的弹出视图。这可能会或可能不会影响 ViewController 处理其 tableview 的方式。
编辑下面的完整错误:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[__NSPlaceholderArray initWithObjects:count:]: 尝试从 objects[0] 插入 nil 对象” *** 首先抛出调用堆栈: (0x18279edb0 0x181e03f80 0x1826821a0 0x18268dc48 0x1000a6948 0x187dd3a50 0x187a49a84 0x187a85b4c 0x100134fdc 0x100135174 0x187c53030 0x187c53198 0x187c42298 0x187c57c64 0x1879e88c4 0x1878f81e4 0x18528a98c 0x1852855c8 0x185285488 0x185284ab8 0x185284818 0x18527dddc 0x182754728 0x1827524cc 0x1827528fc 0x18267cc50 0x183f64088 0x187966088 0x1002e92f4 0x18221a8b8) libc++abi.dylib:以 NSException 类型的未捕获异常终止
【问题讨论】:
-
听起来它可能在该行之前(或之后)崩溃 - 错误表明它正在尝试从空数组向表中添加一行。
-
我尝试在该行代码上设置一个断点,当我越过它时,它崩溃了。所以我认为由于某种奇怪的原因它可能无法使单元格出队。该错误确实指向某种类型的 nil 对象,但我一生都无法弄清楚哪里出了问题
-
在那一行,它将实例化您的单元原型引用的任何类。您是否为该原型单元定义了自定义基类?你真的不应该在那里与
objects(我假设它是你的模型对象)进行任何交互,但也许你可以确认(a)你是否有一个自定义类; (b) 如果是这样,它在做什么。 -
@par - 不,您不必在表格视图中注册类。如果您使用单元原型,它会为您做到这一点。但是,是的,如果不使用单元原型,那么您通常希望为该标识符注册一个类或 NIB(所有这些都没有实际意义,因为如果这是问题所在,他会得到一个非常不同的错误消息。)跨度>
-
大声笑。当我在寻找堆栈跟踪时,我希望得到符号化的再现(这样我们就可以看到它崩溃时的位置)。显然,内存地址对我们没有帮助......
标签: ios swift uitableview