如何为 MR_findFirst 设置 NSManagedObjectContext?
Posted
技术标签:
【中文标题】如何为 MR_findFirst 设置 NSManagedObjectContext?【英文标题】:How to set the NSManagedObjectContext for MR_findFirst? 【发布时间】:2014-01-31 16:54:51 【问题描述】:我将 MagicalRecord 用于我的 CoreData 存储。我有一条语句在执行此语句时会导致不同用户多次崩溃:
PreferenceData *prefDataFound = [PreferenceData MR_findFirst];
错误是:
+entityForName: nil 不是合法的 NSManagedObjectContext 参数搜索实体名称'PreferenceData'
来自这一系列调用(来自 Crashlytics):
1 libobjc.A.dylib objc_exception_throw + 30
2 CoreData +[NSEntityDescription entityForName:inManagedObjectContext:] + 104
3 SalonBook NSManagedObject+MagicalRecord.m line 91
+[NSManagedObject(MagicalRecord) MR_entityDescriptionInContext:]
4 SalonBook NSManagedObject+MagicalRequests.m line 19
+[NSManagedObject(MagicalRequests) MR_createFetchRequestInContext:]
5 SalonBook NSManagedObject+MagicalFinders.m line 79
+[NSManagedObject(MagicalFinders) MR_findFirstInContext:]
6 SalonBook NSManagedObject+MagicalFinders.m line 86
+[NSManagedObject(MagicalFinders) MR_findFirst]
7 SalonBook SubViewGrid.m line 37
-[SubViewGrid drawRect:]
所有这些都向我表明 MR_findFirst 调用没有有效的上下文;除了使用 *MR_findFirstWithPredicate:* (我没有谓词,我只想要第一个也是唯一的记录)之外,我能做些什么来解决这个问题?
【问题讨论】:
这就是我不喜欢 Magical Record 的地方。线程和上下文有很多魔力。 - 如果你有当前上下文,那么你可以调用[PreferenceData MR_findFirstInContext:context]
。
Martin R:请重写您的评论作为答案。我看了看,甚至不知道这种方法。谢谢,我想这会成功的!标清
【参考方案1】:
你可以打电话
PreferenceData *prefDataFound = [PreferenceData MR_findFirstInContext:context];
根据您当前的上下文,而不是依靠 Magical Record 来确定 神奇的当前上下文。
【讨论】:
以上是关于如何为 MR_findFirst 设置 NSManagedObjectContext?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 RecyclerView 设置 onItemClickListener? [复制]