2017-04-10 11 views
0

그래서 MagicalRecord를 사용하여 CoreData에 내 설정을 저장하는 몇 가지 방법이 있습니다. 그러나 나는이 작업을 수행하기 위해 노력하고, 내가이 오류를 얻을 : 지금다른 컨텍스트 오류로 MagicalRecord 및 CoreData 저장

-(void)saveSettingsFirst:(BOOL)first{ 
    [MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext){ 
     SettingsData *newData = [self settingsDataForCurrentUserInContext:localContext]; 

     //SettingsData *newData = [SettingsData MR_createEntityInContext:localContext]; 
     newData.firstValue = @(first); 
     NSLog(first ? @"saveSettings FIRST 0" : @"saveSettings FIRST 1"); 
     newData.settings = [[CacheManager shared] currentUserWithContext:localContext]; 

     NSLog(@"Settings one is saved"); 
    }]; 
} 

이 방법은이 방법은 특정 사용자가 데이터를 저장한다 , 사용을 programm : 그래서 여기 Illegal attempt to establish a relationship 'settings' between objects in different contexts

은 내 코드입니다

-(SettingsData*)settingsDataForCurrentUserInContext:(NSManagedObjectContext*)context{ 
    NSLog(@"In settingsDataForCurrentUserInContext"); 
    SettingsData *settings = [SettingsData MR_findFirstByAttribute:@"settings" withValue:[[CacheManager shared] currentUserWithContext:context]]; 
    return settings; 
} 

그리고 마지막 방법, CoreData에서 현재 사용자에 대한 userData에를 가져 오는 :

CoreData에서 currentUser 설정을 복용

나는 논리가있는 것처럼 보이기 때문에 내 실수라고 인식하는 데 도움이 필요합니다.

답변

0

SettingsData을 가져올 때 기본 컨텍스트를 사용하고 있습니다. 그래서, 변경 :

SettingsData *settings = [SettingsData MR_findFirstByAttribute:@"settings" withValue:[[CacheManager shared] currentUserWithContext:context]];

에 :

SettingsData *settings = [SettingsData MR_findFirstByAttribute:@"settings" withValue:[[CacheManager shared] currentUserWithContext:context] inContext: context];

(면책 조항 : 브라우저에 입력, 오타의 테스트되지 않음)

+0

좋아요를, 그것을 작동합니다! 고맙습니다! 왜이 기능이 작동하는지 읽으려면 설명하거나 링크를 제공 할 수 있습니까? 이미 컨텍스트가있는 사용자를로드하고 성공적으로로드하기 때문입니다. 그러나 우리가 볼 수 있듯이 같은 맥락에서 검색해야합니다. 맞습니까? –

+0

예, 항상 동일한 컨텍스트를 사용하십시오. MR 코드를 확인하면 원래의 라인이 기본 컨텍스트를 사용하는 것을 볼 수 있습니다. 그러나 당신은 로컬 컨텍스트를 전달하므로,이를 조정해야합니다. – Koen

+0

여기를 참고하십시오 : https://github.com/magicalpanda/MagicalRecord/wiki/Fetching-Entities#finding-entities-in-a-specific-context – Koen