I가 for 루프 내에서 호출되는 여러 번 호출 다음의 방법, 메모 객체 생성하고 설정하기 위해있는 NSDictionary 객체를 통해 반복 할 때마다 :코어 데이터를
을- (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
OK 한 가지 더 - 귀하의 질문에 그 목적은 "메모 개체를 만들고 설정하는 것"이라고되어 있습니다. 하지만 코드는 객체를 찾는 것이 아니라 객체를 찾는 것입니다. 명확히 해 주시겠습니까? –