【问题标题】:Get error Thread 1 SIGABRT获取错误线程 1 SIGABRT
【发布时间】:2015-10-23 22:35:36
【问题描述】:

我在我的应用程序中使用 CoreData。现在添加一个新条目并尝试保存它。我不知道为什么,但是 Thread 1: signal SIGABRT 失败了

这是我的储蓄部分:

    var error: NSError? = nil
    if !context.save(&error) {

        abort()
    }

这行代码崩溃了:

        abort()

有人知道为什么会发生这种情况并且我可以解决吗?如果这可能是一个原因,我也会使用 iCloud 同步。非常感谢您的帮助!

【问题讨论】:

  • 您的save 呼叫失败。更多信息可以在您传入的error 参数中找到,但您必须查看它以了解它的含义。
  • 你在向自己的脚开枪,然后抱怨你的脚被枪击中了。

标签: ios swift core-data crash sigabrt


【解决方案1】:

您的代码的行为完全符合预期。谷歌搜索“Unix 中止”。

名字

abort - 生成异常进程中止 概要

包括

无效中止(无效);

描述

abort() 函数会导致进程异常终止,除非信号 SIGABRT 被捕获并且信号处理程序没有返回。异常终止处理至少包括 fclose() 对所有打开的流和消息目录描述符的影响,以及为 SIGABRT 定义的默认操作。 SIGABRT 信号被发送到调用进程,就像通过带有参数 SIGABRT 的 raise() 一样。 通过 abort() 提供给 wait() 或 waitpid() 的状态将是由 SIGABRT 信号终止的进程的状态。 abort() 函数将覆盖阻塞或忽略 SIGABRT 信号。

返回值

abort() 函数不返回。 错误

没有定义错误。 示例

没有。 应用用途

捕获信号旨在为应用程序编写者提供一种可移植的方法来中止处理,而不会受到任何实现提供的库函数的可能干扰。如果 SIGABRT 既没有被捕获也没有被忽略,并且当前目录是可写的,则可能会产生核心转储。 未来方向

没有。 参见

exit(), kill(), raise(), signal(), 推导

源自 SVID 的第 1 期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多