2013-10-03 51 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