Я использую параллелизм в Core Data. Apple docs вроде this часто рассказывала мне, что синхронизация контекстов зависит от семантики моего приложения. И я не могу найти конкретные образцы, как объединить UIManagedObjectContext
с. Так что в моем приложении один UIManagedObject
может иметь разные значения свойств в разных контекстах. Мне нужно объединить контексты, заменив объекты или обновив их свойства. Вот мой код:Способы слияния контекстов управляемого объекта
- (void)__saveToMainContext
{
if ([_context_ hasChanges])
{
NSError *error = nil;
if (![_context_ save:&error])
{
if (error.code == NSManagedObjectMergeError)
{
for (NSMergeConflict* conflict in [[error userInfo] objectForKey:@"conflictList"])
{
[_context_ refreshObject:[conflict sourceObject] mergeChanges:YES];
}
}
}
}
}
Но этот метод создает дубликаты объектов.
Я видел эти документы, но я не понимаю, какой контекст mergePolicy мне нужно установить в NSMergeByPropertyObjectTrumpMergePolicyType. И что делать, если возникает ошибка? Почему возникает какая-либо ошибка, когда я устанавливаю mergePolicy? –
какая политика вы установили? и как? можете ли вы вставить еще один код? И политика слияния должна быть задана в контексте управляемого объекта. Затем он решает, как эти контекстные данные будут объединены с данными постоянного хранения данных –