내 질문 : NSFetchRequest
을 코어 데이터가있는 여러 페치에 재사용해도 좋지 않니?코어 데이터와 함께 여러 페치에 대해 NSFetchRequest를 재사용하는 데 나쁜 점이 있습니까?
예제 코드 :
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *logEntity = [NSEntityDescription entityForName:@"LogEntry" inManagedObjectContext:context];
[request setEntity:logEntity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateTimeAction" ascending:NO]; // ascending NO = start with latest date
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"status == %@",@"op tijd"];
[request setPredicate:predicate];
[request setFetchLimit:50];
NSError *error = nil;
NSInteger onTimeCount = [context countForFetchRequest:request error:&error];
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"status == %@",@"uitgesteld"];
[request setPredicate:predicate1];
[request setFetchLimit:50];
NSInteger postponedCount = [context countForFetchRequest:request error:&error];
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"status == %@",@"gemist"];
[request setPredicate:predicate2];
[request setFetchLimit:50];
NSInteger missedCount = [context countForFetchRequest:request error:&error];
[request setFetchLimit : 50];과 결합하여 최신 50 개의 요소를 가져 오려면 정렬 설명자가 필요합니다. 나는 모든 요청에 대해 fetchLimit을 한 번 설정할 수 있다고 생각한다. – Pieter
아. 그런 다음 FR을 재사용하여 나중에 실제 로그 항목을 가져오고 표시된대로 계산하면 개체 가져 오기 중에 정렬 설명자를 설정하고 카운트를 가져 오는 동안 nil로 다시 설정하는 것이 좋습니다. 50 개가 넘는 경우 카운트 가져 오기는 "어떤 것"이든 관계없이 50을 반환합니다. – rgeorge