1
이 질문에 대한 제 대답을 드리겠습니다. 나는 가능한 한 많은 다른 답변을 볼 때까지 그것을 받아들이지 않을 것입니다. 내가 최고 도우미 방법은 많은 다운로드하는 동안 관계를 설정할 수 있도록하기위한 것입니다 아래의 코드NSFetchRequest는 때로는 결과 만 반환합니다.
- (id)fetchUniqueEntity:(Class)entityClass
withValue:(id)value
fromContext:(NSManagedObjectContext *)context
insertIfNil:(BOOL)insertIfNil {
if(!value) {
return nil;
}
NSString *entityUniqueIdentifierKey = [entityClass performSelector:@selector(uniqueIdentifierKey)];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %@", entityUniqueIdentifierKey, value];
NSArray *entities = [self fetchEntities:entityClass
withPredicate:predicate
fromContext:context];
if(!entities || [entities count] == 0) {
if (insertIfNil) {
return [entityClass performSelector:@selector(insertInManagedObjectContext:)
withObject:context];
}
} else {
return [entities objectAtIndex:0];
}
return nil;
}
- (NSArray *)fetchEntities:(Class)entityClass
withPredicate:(NSPredicate *)predicate
fromContext:(NSManagedObjectContext *)context {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSString *entityName = [entityClass performSelector:@selector(entityName)];
[request setEntity:[NSEntityDescription entityForName:entityName
inManagedObjectContext:context]];
if(predicate) {
[request setPredicate:predicate];
}
NSError *error;
NSArray *entities = [context executeFetchRequest:request
error:&error];
if(error) {
NSLog(@"Error executing fetch request for %@! \n\n%@", entityName, error);
}
return entities;
}
로 어려움을 겪고 있었어요 일 지난 몇
. 내가 가지고있는 문제는 비록 Account
객체가 accountId
이 1
인 영구 저장소 (확인 됨)에 있다고해도 그 객체를 절반 만 검색한다는 것입니다. 나는 정직하게 이유를 설명 할 수 없다. 어떤 아이디어?