Моя модель данных называется «Человек» и имеет 3 атрибуты «ID», «Имя» и «Фамилия»Ядро синхронизации данных с помощью JSON API
При импорте данных в формате JSON с помощью AFNetworking я хочу, чтобы иметь возможность чтобы проверить, существует ли объект уже или нет в Core Data с использованием «id» в качестве идентификатора. Если его нет, я бы хотел его создать, и если он есть, я хотел бы объединить элемент или обновить его.
прямо сейчас у меня есть метод, называемый duplicateCheck, который выглядит как:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id==%@", _person.id];
NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
NSError *error = nil;
[fetch setEntity:[NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext]];
[fetch setPredicate:predicate];
NSArray *items = [self.managedObjectContext executeFetchRequest:fetch error:&error];
for (NSManagedObject *object in items) {
// Not sure how to check from here and insert or update
// then save and call it during the API request?
}
У меня есть предикат установить, но я не уверен, куда идти отсюда. Перебирает ли каждый элемент правильный путь, или я об этом ошибаюсь?
Вы можете использовать цикл, но ваш запрос должен возвращать только один объект, в противном случае у вас есть несогласованность данных и несколько объектов с одним и тем же идентификатором. –
Бесстыдный плагин, но это может вам помочь. http://www.raywenderlich.com/15916/how-to-synchronize-core-data-with-a-web-service-part-1 –