测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
已发布上次发布 | 2016年4月 |
SPM支持SPM | ✗ |
由William Boles维护。
一个抽象化UITableView样板代码的FetchedResultsController实现
FetchedResultsController是一系列NSFetchedResultsController
的子类,它们遵守自己的NSFetchedResultsControllerDelegate
代理,并实现了这些方法来处理最常见的情况。由于这种实现使用了它自己的代理,我们不得不引入一组不同的代理回调: FRCTableViewFetchedResultsControllerDataDelegate
。
- (FRCTableViewFetchedResultsController *)fetchedResultsController
{
if (!_fetchedResultsController)
{
_fetchedResultsController = [[FRCTableViewFetchedResultsController alloc] initWithFetchRequest:self.fetchRequest
managedObjectContext:[CDSServiceManager sharedInstance].managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
_fetchedResultsController.tableView = self.tableView;
[_fetchedResultsController performFetch:nil];
}
return _fetchedResultsController;
}
有时候您想在同一个UITableView
내에FRC(Fetch Results Controller)和另一个数据源内的数据混合,以支持这一点,FetchedResultsController有一个sectionOffset
属性,允许您在视图中插入多个非FRC的段落。请注意,这仅在位于(索引较低)FRC部分之前的段落中起作用。
_fetchedResultsController.sectionOffset = 2;
在上面的示例中,我们在FRC部分之前添加了两个段落。
FetchedResultsController附带一个示例项目,以提供比上述信息更多的详细信息。
FetchedResultsController使用模块来导入/使用框架 - 您需要在项目中启用此功能。
如果您遇到特定于FetchedResultsController的问题,或有一个功能请求,或者想要分享评论,请在此处新建一个Issue。请注意,有关FetchedResultsController/Core Data的一般问题应在Stack Overflow上提问。
欢迎提交pull requests!请尽量与现有的代码风格保持一致。如果您正在考虑对项目进行重大更改或添加,请提前通过打开新的Issue进行沟通。这样可以使每个人都参与即将到来的更改,确保更改与项目的设计理念一致,并避免重复工作。