魔法logging添加对象,不同的上下文错误
我在我的应用程序中使用魔法logging,并希望添加用户的function,添加一个“注”,这是“入门”的孩子。
我添加了这个代码:
[MagicalRecord saveWithBlock: ^(NSManagedObjectContext *localContext) { Note *newNote = [Note MR_createInContext: localContext]; newNote.content = noteContent; newNote.name = @"User Note"; [self.entry addNotesObject: newNote]; } completion: ^(BOOL success, NSError *error) { if (error != nil) { // show alert } else if (success) { [[self tableView] reloadData]; } }];
我一直在最后一行得到的错误是“非法尝试在不同的上下文中的对象之间build立关系”条目“
我尝试将'entry'和'newNote'的上下文设置为'localContext',但是我仍然得到相同的错误。
我错过了什么?
self.entry
是在不同的环境下创build的,所以你不能从这个环境访问它。 代替:
[self.entry addNotesObject: newNote];
你应该先在localContext
findself.entry
对象:
[[self.entry MR_inContext:localContext] addNotesObject: newNote];
您可以在线程上执行核心数据操作,find在并发环境中使用MagicalRecord的解释。 虽然它很短,所以在我看来,即使不直接使用CD,也是值得阅读Core Data Programming Guide的 。
- 将iOS Core Data添加到现有项目 – 解包可选值时发生错误
- iOS – 核心数据集属性主键
- 删除核心数据中的对象,无法匹配Swift数组元素types
- 核心数据multithreading读取logging
- 获取NSFetchedResultsController,NSSortDescription和sectionNameForKeyPath一起工作
- 使用NSPredicate进行反向string比较
- 解决CoreData错误:NULL _cd_rawData但对象没有变成故障
- 用核心数据计算一个简单的总和
- 为实体插入新的对象的CoreData给我错误时使用setValue:forKey:与一个int