我有以下崩溃日志和代码:
https://gist.github.com/emilevictor/7422ac293eb27b415fb8
我有点困惑,因为我已经使用try catch块包装了这个Core Data代码(在数据库中创建了一个新实例),但它仍然在发布编译代码中偶尔崩溃。
顺便说一句,这是在从头开始擦除并安装本地数据的设备上。
我不知道还能做什么,我认为这段代码可能存在问题。
答案 0 :(得分:2)
首先是try / catch问题。 @try
/ @catch
仅限NSException
n或@throw
d的-raise
个陷阱。你没有这种例外,你有一个segfault。这些发生在更低的级别,不能陷入@try
/ @catch
。
这里真正的问题是导致段错误的原因是什么。通常这是由过早-dealloc
的对象或通过发送给-dealloc
观察员的通知引起的。我可以从你的调用堆栈中看到该进程正在发送通知,所以我猜它是第二种类型。
在某个地方,您已经注册了一个观察者并且该观察者已经超出了范围(-dealloc
ed)而没有注销自己。我首先要为僵尸分析应用程序。