그래서 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 설정을 복용나는 논리가있는 것처럼 보이기 때문에 내 실수라고 인식하는 데 도움이 필요합니다.
좋아요를, 그것을 작동합니다! 고맙습니다! 왜이 기능이 작동하는지 읽으려면 설명하거나 링크를 제공 할 수 있습니까? 이미 컨텍스트가있는 사용자를로드하고 성공적으로로드하기 때문입니다. 그러나 우리가 볼 수 있듯이 같은 맥락에서 검색해야합니다. 맞습니까? –
예, 항상 동일한 컨텍스트를 사용하십시오. MR 코드를 확인하면 원래의 라인이 기본 컨텍스트를 사용하는 것을 볼 수 있습니다. 그러나 당신은 로컬 컨텍스트를 전달하므로,이를 조정해야합니다. – Koen
여기를 참고하십시오 : https://github.com/magicalpanda/MagicalRecord/wiki/Fetching-Entities#finding-entities-in-a-specific-context – Koen