魔法记录添加对象,不同的上下文错误

时间:2013-10-03 17:42:06

标签: ios core-data magicalrecord

我在我的应用程序中使用魔法记录,并希望为用户添加功能以添加“注释”,这是“条目”的子项。

我添加了这段代码:

    [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];
                          }
                      }];

我在最后一行上遇到的错误是“非法尝试在不同上下文中的对象之间建立关系'条目”

我尝试将'entry'和'newNote'的上下文设置为'localContext',但我仍然得到同样的错误。

我错过了什么?

1 个答案:

答案 0 :(得分:6)

self.entry是在不同的上下文中创建的,因此您无法从此处访问它。 而不是:

[self.entry addNotesObject: newNote];

您应首先在self.entry中找到localContext个对象:

[[self.entry MR_inContext:localContext] addNotesObject: newNote];

您可以在Performing Core Data operations on Threads的并发环境中找到使用MagicalRecord的说明。虽然它很短,但我认为即使您不直接使用CD也值得阅读Core Data Programming Guide