Проверка на наличие дубликатов при импорте в CoreData

m импортирует данные в хранилище Core Data с помощью RestKit и должен проверять наличие дубликатов. Если товар уже в магазине, яЯ хотел бы обновить его с последними атрибутами. Если оно'это новый предмет, яЯ хотел бы создать это.

Импорт был медленным, поэтому я использовал Instruments и увидел, что самая длинная часть импорта проверяла, существует ли элемент (с запросом на выборку)

Так что я'Хотелось бы узнать, проверяет ли товар уже в магазине, быстрее ли он:

используйте countForFetchRequest, чтобы увидеть, существует ли элемент, затем выполните executeFetchRequest, чтобы вернуть элемент для обновления илипросто запуститеFetchRequest, чтобы получить элемент для обновленияили есть лучший способ сделать это?

Я думал, что countForFetchRequest будет быстрее, так как весь NSManagedObject не 't вернулся и выполнил запрос на выборку, только если я знаюбудет NSManagedObject.

Спасибо

- (Product *)productWithId:(int)productID {

    NSManagedObjectContext *context = [Model sharedInstance].managedObjectContext;
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"product_id == %d", productID];
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    request.entity = [NSEntityDescription entityForName:@"Product" inManagedObjectContext:context];
    request.predicate = predicate;
    request.fetchLimit = 1;

    NSError *error = nil;

    NSUInteger count = [context countForFetchRequest:request error:&error];

    if (!error && count == 1) {
        NSArray *results = [context executeFetchRequest:request error:&error];
        if (!error && [results count]) {
            return [results objectAtIndex:0];
        }
        return nil;
    }

    return nil;

}

Ответы на вопрос(1)

Ваш ответ на вопрос