- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 UICollectionView 和 NSFetchResultsController 来呈现不同的照片集。这是我第一次同时使用 UICollectionView 和 NSFetchResultsController。
这是我的代码:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"CellIdentifier";
CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
MyPhoto *myPhoto = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.imageView.image = [UIImage imageWithData:myPhoto.photoData];
return cell;
}
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil)
{
return _fetchedResultsController;
}
/*
Set up the fetched results controller.
*/
// Create the fetch request for the entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSManagedObjectContext *moc = [[CoreDataManager sharedInstance] managedObjectContext];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyPhoto" inManagedObjectContext:moc];
[fetchRequest setEntity:entity];
// Set the batch size to a suitable number.
[fetchRequest setFetchBatchSize:40];
// Sort using the timeStamp property.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"sectionName" ascending:YES];
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:YES];
[fetchRequest setSortDescriptors:@[sortDescriptor, sortDescriptor1]];
// Use the folderName property to group into sections.
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:moc sectionNameKeyPath:@"sectionName" cacheName:@"Root"];
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
当我有更多部分并尝试 ScrollView 时,它滚动不流畅。我错过了什么吗?
最佳答案
将 NSFetchedResultController 与 TableView 或 CollectionView 一起使用没有区别。
我在你的代码中看到了一些东西-
1) BatchSize:40
- 批处理的大小越大,获取所需的时间就越多。它不会经常获取,但需要更多时间。例如,尝试将其设置为 20。滚动应该是窒息的。
2) 你的实体是照片。
- 确保不要将 BLOB(大数据)存储为值。这会使抓取变慢。如果您需要将图像存储在模型中的 CoreData 集中(存储在外部存储文件中)键。
- 制作图像的缩略图。如果您需要显示小尺寸图像,请制作缩略图并将其直接保存到 CoreData(不要使用“存储在外部存储文件”)键。这个 vill 使抓取速度非常快,因为您不会使用任何外部文件并且照片填充的尺寸很小。
- 预取数据。如果你有一些子实体 if photo 并且你正在使用它们,
NSString *relationshipKeyPath = @"bObjects"; // Set this to the name of the relationship on photo
NSArray *keyPaths = [NSArray arrayWithObject:relationshipKeyPath];
[request setRelationshipKeyPathsForPrefetching:keyPaths];
关于ios - 使用 NSFetchResultsController 时 UICollectionView 滚动不流畅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23556982/
这个问题在这里已经有了答案: NSFetchedResultsController with relationship not updating (4 个回答) 7年前关闭。 我正在开发具有 2 个实
这个问题已经有答案了: Type 'AnyObject' does not conform to protocol 'NSFetchRequestResult' (1 个回答) 已关闭 6 年前。 我
我收到这个错误: CoreData: error: Serious application error. An exception was caught from the delegate of NS
我有一个 UITableView 显示来自核心数据实体的对象,这些对象是通过 NSFetchResultController 从 WebServer 接收的。用户可以修改它们并将它们发送回服务器。她还
我有一个 Table View Controller,其中包含由 fetchResultsController 处理的 Formation 列表。 这是我的核心数据实体的样子: 我尝试按 dateRa
我正在使用 NSFetchedResultsController 来填充 UITableView。提取需要一些时间,因此我想在提取过程中向用户展示一个纺车。 我该怎么做? 最佳答案 您应该在主线程中启
我正在这里开发我的第一个 iPhone 应用程序(一个基本的待办事项列表应用程序),并且刚刚将 NSFetchResultsController 添加到我的 TableView 中。我有 2 个部分的
我正在尝试为我在 UITableView 中使用的 NSFetchResultsController 创建一个 NSPredicate。我有 3 个实体,User(一对多)-> Visit(一对多)-
我正在使用NSFetchedResultsController通过coredata加载我的tableView。最近,我在 ManagedObjectModel 中添加了一个新的实体,并进行了 core
我有以下代码: - (NSFetchedResultsController *)fetchedResultsController { // Set up the fetched results
我正在开发一个处理超过 150000 条记录的核心数据项目。使用 NSFetchedResultsController 将记录显示在 TableView 中。这些记录将使用我的实体的不同属性进行排序。
我在使用 NSFetchResultsController 时遇到了一些麻烦,正在寻求一些帮助。 我的 CoreData 实体 FunCentre 具有以下属性 name、latitude、longi
我尝试制作像商店这样的小型应用程序,我将对象内容名称和图像保存在 coreData 中,并尝试使用 NSFetchResultsController 来调用它,但它没有告诉我任何想法 我将我的项目上传
我正在使用 UICollectionView 和 NSFetchResultsController 来呈现不同的照片集。这是我第一次同时使用 UICollectionView 和 NSFetchRes
我有一个为 UITableView 提供数据的 NSFetchResultsController。我在导航栏中有一个添加按钮,允许用户在下一个 View 中添加一个新实体。 在下一个 View 中,我
所以我们在 WWDC 2019 视频 230 中,从大约第 14 分钟开始,据称 NSFetchedResultsController 现在提供了一个 NSDiffableDataSourceSnap
我是一名优秀的程序员,十分优秀!