我在我的应用程序中使用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/