2013-10-03 25 views
3

我在我的应用程序中使用魔法记录,并且想添加用户添加'注释'的功能,这是'入口'的子项。魔法记录添加对象,不同的上下文错误

我加入这个代码:

[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'的context到'localContext',但我仍然得到相同的错误。

我错过了什么?

回答

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

+0

谢谢,现在错误消失了! – Koen