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

这是我节省的部分:

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

        abort()
    }

它在以下代码行中崩溃:
        abort()

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

最佳答案

您的代码的行为完全符合预期。 Google对于“Unix中止”。

名称

中止-产生异常流程中止
概要

包括

无效中止(无效);

描述

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

返回值

abort()函数不会返回。
错误

没有错误定义。
例子

没有。
应用用途

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

没有。
也可以看看

exit(),kill(),raise(),signal(),
派生

源自SVID的问题1。

关于ios - 获取错误线程1 SIGABRT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33312379/

10-10 20:39