try catch块中的Core Data崩溃

时间:2014-03-31 00:23:13

标签: ios core-data

我有以下崩溃日志和代码:

https://gist.github.com/emilevictor/7422ac293eb27b415fb8

我有点困惑,因为我已经使用try catch块包装了这个Core Data代码(在数据库中创建了一个新实例),但它仍然在发布编译代码中偶尔崩溃。

顺便说一句,这是在从头开始擦除并安装本地数据的设备上。

我不知道还能做什么,我认为这段代码可能存在问题。

1 个答案:

答案 0 :(得分:2)

首先是try / catch问题。 @try / @catch仅限NSException n或@throw d的-raise个陷阱。你没有这种例外,你有一个segfault。这些发生在更低的级别,不能陷入@try / @catch

这里真正的问题是导致段错误的原因是什么。通常这是由过早-dealloc的对象或通过发送给-dealloc观察员的通知引起的。我可以从你的调用堆栈中看到该进程正在发送通知,所以我猜它是第二种类型。

在某个地方,您已经注册了一个观察者并且该观察者已经超出了范围(-dealloc ed)而没有注销自己。我首先要为僵尸分析应用程序。