2013-10-03 1 views
3

내 앱에서 Magical Record를 사용하고 있으며 사용자가 'entry'의 하위 항목 인 'Note'를 추가 할 수있는 기능을 추가하려고합니다. 내가 마지막 줄에 점점 계속 오류가 나는 설정을 시도Magical Record 객체 추가, 다른 컨텍스트 오류

"다른 컨텍스트에서 개체 간의 '항목을'관계를 설정하는 불법 시도"입니다

[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'로 변경했지만 여전히 동일한 오류가 발생합니다.

무엇이 누락 되었습니까?

답변

6

self.entry은 다른 컨텍스트에서 만들어 졌으므로이 컨텍스트에서 액세스 할 수 없습니다. 대신에 :

[self.entry addNotesObject: newNote]; 

먼저 localContextself.entry 개체를 찾을 수 있어야합니다

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

당신은 Performing Core Data operations on Threads에서 동시 환경에서 MagicalRecord을 사용하여 설명을 찾을 수 있습니다. 비록 상당히 짧기는하지만, 제 생각에는 CD를 직접 사용하지 않아도 Core Data Programming Guide을 읽는 것이 좋습니다.

+0

감사합니다. 오류가 발생했습니다. – Koen