У меня есть следующий метод, который вызывается внутри для цикла и называется несколько раз, каждый раз повторяя через NSDictionary объекта для создания и установить ноту объекта:Оптимизация Core Data/Magical запись - findFirstByAttribute - Core Data
- (BOOL)updateById:(NSString *)entityId
withData:(NSDictionary *)dataDictionary {
DLog(@"Updating %@", [_entityClass description]);
if (_entityIdentifier == nil) {
DLog(@"entityIdentifier has not been set");
}
NSManagedObjectContext *context = ContextForThread;
id note = [_entityClass findFirstByAttribute:_entityIdentifier
withValue:entityId
inContext:context]; //This is running slowly ?
[note setValuesFromDictionary:dataDictionary];
BOOL changes = YES;
if ([note changedValues].count == 0) {
changes = NO;
DLog(@"Has NOT changed - Dont save");
}
else {
DLog(@"Has changed");
}
return changes;
}
Я пытаюсь оптимизировать этот код и заметил, что метод findFirstByAttribute представляется довольно медленно. Есть ли способ оптимизировать этот метод?
Является ли 'entityID' одинаковым каждый раз, когда вы вызываете этот метод в цикле или иначе? –
Привет, Том - разные каждый раз. – GuybrushThreepwood
ОК еще одна вещь. В вашем вопросе говорится, что цель - «создать и установить объект примечания». Но ваш код, кажется, просто ищет объекты, а не создает их. Не могли бы вы уточнить? –