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