我的应用程序不断随机崩溃
我想谈谈每个新开发人员都会遇到的最烦人的事情,这确实让我浪费了数小时甚至数天的时间来试图理解为什么我的应用程序总是随机崩溃。
作为一个懒惰的开发人员,我不只是去阅读我将要集成到我的项目中的这个新东西的所有文档,我只是去开始编码,认为如果它在我的机器上工作,那么它必须在每个人的机器上工作。
在我开始使用 Coredata 之前,我的工作效率一直很高,但我的工作效率开始直线下降。我们的应用程序每分钟都会随机崩溃,我看不出崩溃的原因。我跑到 XCode 的崩溃日志中查看崩溃的位置,每次都是不同的地方,但都与 CoreData 相关。
虽然如果我只是查看崩溃日志的顶部,我会看到__Multithreading_Violation_AllThatIsLeftToUsIsHonor__我会早点解决这个问题但是是的,All That Is Left To Us Is Honor 。
CoreData 不是线程安全的
在没有适当同步的情况下从多个线程修改托管对象可能会导致使用 Core Data 的 iOS 应用程序崩溃。这是因为 Core Data 不是线程安全的,这意味着它不是为同时从多个线程访问或修改而设计的。
这是一个如何导致崩溃的示例:
import CoreData