コア日付オブジェクト(約10000)の大きなプールがあり、プロファイルに応じてコードを実行するのに時間がかかりすぎます: NSDate * maxExternalChangedDate = [codes valueForKeyPath: @ max.externalChangedDate "]; コミュニティはそれを見つけた方が良い方法を知っていますか? NSFetchRequest
を使用し、あなたがMAX()と分()などの関数の結果をyeildするNSExpressionDescription
を使用することができますNSDictionaryResultType
戻すことによりコアデータオブジェクトの大きなプール内で最大日付を見つけるより良い方法
NSString *rateSheetID = [rateSheetAndPrefix valueForKey:@"rateSheetID"];
NSFetchRequest *requestCodesForSale = [[NSFetchRequest alloc] init];
[requestCodesForSale setEntity:[NSEntityDescription entityForName:@"CodesvsDestinationsList"
inManagedObjectContext:self.moc]];
[requestCodesForSale setPredicate:[NSPredicate predicateWithFormat:@"(%K.carrier.GUID == %@)",relationshipName,carrierGUID]];
NSError *error = nil;
NSArray *codes = [self.moc executeFetchRequest:requestCodesForSale error:&error];
if (error) NSLog(@"Failed to executeFetchRequest to data store: %@ in function:%@", [error localizedDescription],NSStringFromSelector(_cmd));
NSNumber *count = [codes valueForKeyPath:@"@count.externalChangedDate"];
if (count == 0) {
[requestCodesForSale release];
[pool drain], pool = nil;
return YES;
}
NSDate *maxExternalChangedDate = [codes valueForKeyPath:@"@max.externalChangedDate"];