この Fetch Request は、iPhone で実行するのに約 10 秒かかります。目標は、各カテゴリから 1 つのランダムなサムネイルを取得することです。fetchlimit = 1 に設定すると、ほとんどの場合同じサムネイルが返されるため、各カテゴリからすべての写真を取得する必要があります。
何か案は ?
[categoriesArray enumerateObjectsUsingBlock:^(id object, NSUInteger index, BOOL *stop) {
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Photos"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"place.subcategory.category == %@", object];
[request setPredicate:predicate];
NSError *error;
NSArray *photosManagedObjectsArray = [managedObjectContext executeFetchRequest:request error:&error];
NSUInteger randomIndex = arc4random() % [photosManagedObjectsArray count];
NSManagedObject *photoObject = [photosManagedObjectsArray objectAtIndex:randomIndex];
UIImage *photoImage = [UIImage imageWithData:[photoObject valueForKey:@"thumbnail"]];
UIImage *resizedImage = [photoImage imageCroppedToFitSize:CGSizeMake(IMAGE_WIDTH, IMAGE_HEIGHT)];
[imagesArray addObject:resizedImage];
[objectsArray addObject:photoObject];
}];
どうもありがとう!明細書。