Coredata 和 Mogenerator,coredata 标志并发问题 EXC_BAD_INSTRUCTION

Posted

技术标签:

【中文标题】Coredata 和 Mogenerator,coredata 标志并发问题 EXC_BAD_INSTRUCTION【英文标题】:Coredata and Mogenerator, coredata flag concurrency issues EXC_BAD_INSTRUCTION 【发布时间】:2017-03-27 21:29:31 【问题描述】:

我在我的项目中添加了 Core Data 并发标志。我也在使用Mogenerator。当我尝试使用 mogens getter 获取变量值时,它会遇到断点。这是我的功能:

- (BOOL) existsOnServer
    id someID = self.id; // breakpoint hit here
    return (!someID || someID == (id)[NSNull null])?NO:YES;

这个函数存在于我的主要自定义对象类中,一切都继承自该类。有谁知道为什么会抛出这个错误?

【问题讨论】:

您从哪个线程访问 self.id,您的 CoreData 线程策略是什么? 您的评论帮助我得出以下答案,非常感谢! 【参考方案1】:

问题是我在一个代码块中调用了上述方法,该代码块在不同于 main 的线程上执行,我假设在该线程中创建了“self”。

我发现我可以使用托管对象上下文managedObjectContext 参数。这是创建对象的上下文,只有当上下文不再存在时才会为 nil。通过在这个上下文中使用执行块,我可以从对象中获取我需要的数据。

【讨论】:

以上是关于Coredata 和 Mogenerator,coredata 标志并发问题 EXC_BAD_INSTRUCTION的主要内容,如果未能解决你的问题,请参考以下文章

iOS CoreData+MoGenerator:如何仅在使用嵌套上下文时初始化托管对象一次?

XCode 4.6 中的 Mogenerator 和 ARC

将 mogenerator 与 Core Data 实体一起使用会导致保存数据存储时出错

从 CoreData 关系中获取错误实体的对象

Simperium 和 mogenerator 便利访问器

Mogenerator 和 Xcode 4 的优点/缺点