另一个 SIGABRT 错误

Posted

技术标签:

【中文标题】另一个 SIGABRT 错误【英文标题】:Another SIGABRT error 【发布时间】:2015-04-20 16:37:31 【问题描述】:

我收到错误 Thread1: signal SIGABRT 在下面的行中,我已经尝试过:

产品>清洁、重启计算机 检查与情节提要的所有连接 检查是否有连接丢失 标识符在属性检查器中设置为单元格

另外查看此论坛中的许多帖子。

在这一切之后,我删除了与情节提要的所有连接并再次连接,但仍然出现相同的错误:(

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cell2 = tableView.dequeueReusableCellWithIdentifier("cell2", forIndexPath: indexPath) as! DefinitionTableViewCell

在控制台中:

Assertion failure in -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:], /SourceCache/UIKit/UIKit-3347.44/UITableView.m:6245

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier cell2 - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

任何帮助都非常受欢迎 Tks :)

【问题讨论】:

【参考方案1】:

好吧,正如异常消息所暗示的,您“必须为标识符注册一个 nib 或一个类”。尝试在viewDidLoad() 中添加这一行:

tableView.registerNib(UINib(nibName: "nameOfYourCustomNib", bundle: nil), forCellReuseIdentifier: "cell2")

nameOfYourCustomNib 替换为您的笔尖名称,例如,如果您有一个文件MyCustomCell.xib,那么名称将是MyCustomCell

如果失败,尝试注册一个类而不是一个 nib(记得删除第一行),输入:

tableView.registerClass(DefinitionTableViewCell.self, forCellReuseIdentifier: "cell2")  

最重要的是,在cellForRowAtIndexPath 中,确保检查单元格是否为nil,如果是,则创建一个新的DefinitionTableViewCell

【讨论】:

谢谢Fengson,我试了还是同样的错误。 :( "nameOfYourCustomNib" 我应该放什么? :( 我遇到了同样的错误,我还尝试了 2 件事,每件事都在不同的情况下工作。你可以两个都试一下,告诉我是否有效。查看我的编辑。 第二个效果很好,非常感谢节省我的一天:) 太好了,很高兴我能帮上忙! :)

以上是关于另一个 SIGABRT 错误的主要内容,如果未能解决你的问题,请参考以下文章

为 iOS 应用程序创建了一个下一步按钮...单击时出现 SIGABRT 错误

如何获取已向已退出转储核心的另一个进程发送 SIGABRT 信号的进程的 pid

sigabrt 没有错误信息

Xcode 线程 1 SIGABRT 上的 Firebase 通知错误

为啥我在此代码中收到 SIGABRT 错误 [关闭]

icarousel 中的 SIGABRT 错误