Cette requête d'extraction prend près de 10 secondes à s'exécuter sur l'iPhone. Le but est d'extraire 1 vignette aléatoire de chaque catégorie. Paramètre fetchlimit = 1 la plupart du temps renvoie la même vignette, donc je dois aller chercher toutes les photos de chaque catégorie.Core Data Optimize Fetch Request
Des idées?
[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];
}];
merci beaucoup! Projet de loi.
essai en utilisant '' propriété fetchOffset' de NSFetchRequest' comme un nombre entier aléatoire compris entre 0 et (numberOfPics - 1) – Eimantas
grâce, je suis totalement ignorant fetchOffset. – Nimrod7