Core data 核心数据优化获取请求
在iPhone上执行此获取请求几乎需要10秒。 目标是从每个类别中随机获取1个缩略图。 设置fetchlimit=1大多数情况下返回相同的缩略图,因此我必须从每个类别中获取所有照片 有什么想法吗Core data 核心数据优化获取请求,core-data,Core Data,在iPhone上执行此获取请求几乎需要10秒。 目标是从每个类别中随机获取1个缩略图。 设置fetchlimit=1大多数情况下返回相同的缩略图,因此我必须从每个类别中获取所有照片 有什么想法吗 [categoriesArray enumerateObjectsUsingBlock:^(id object, NSUInteger index, BOOL *stop) { NSFetchRequest *request = [NSFetchRequest fetchRequest
[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];
}];
非常感谢!
比尔。您不需要将所有对象拉入一个数组。换衣服
NSArray *photosManagedObjectsArray = [managedObjectContext executeFetchRequest:request error:&error];`
NSUInteger randomIndex = arc4random() % [photosManagedObjectsArray count];
对此
NSUInteger count = [managedObjectContext countForFetchRequest:request error:&error];
NSUInteger randomIndex = arc4random() % count;
现在使用fetchOffset
获取所需的单个对象
[request setFetchOffset:randomIndex];
[request setFetchLimit:1];
您不需要将所有对象拉入一个数组。换衣服
NSArray *photosManagedObjectsArray = [managedObjectContext executeFetchRequest:request error:&error];`
NSUInteger randomIndex = arc4random() % [photosManagedObjectsArray count];
对此
NSUInteger count = [managedObjectContext countForFetchRequest:request error:&error];
NSUInteger randomIndex = arc4random() % count;
现在使用fetchOffset
获取所需的单个对象
[request setFetchOffset:randomIndex];
[request setFetchLimit:1];
尝试将
NSFetchRequest的fetchOffset
属性用作0到(numberOfPics-1)的随机整数谢谢,我完全忽略了fetchOffset。尝试将NSFetchRequest的fetchOffset
属性用作0到(numberOfPics-1)的随机整数谢谢,我完全忽略了fetchOffset。非常感谢。我完全忽略了你的存在。非常感谢。我完全忽视了他的存在。