私は、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");
}];
}
この方法は、この方法は、特定のユーザーがデータを保存している 、使用しているプログラムの開発:だからここ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