MagicalRecords 从 fetchedResultsController 获取数据
Posted
技术标签:
【中文标题】MagicalRecords 从 fetchedResultsController 获取数据【英文标题】:MagicalRecords fetch data from fetchedResultsController 【发布时间】:2013-11-07 08:19:12 【问题描述】:我已将此fetchedResultsController
添加到我的UIViewController
。我正在使用 MagicalRecords。
这是我的代码:
- (NSFetchedResultsController *)fetchedResultsController
if (_fetchedResultsController != nil)
return _fetchedResultsController;
_fetchedResultsController = [Artist fetchAllGroupedBy:nil withPredicate:nil sortedBy:@"artist_id" ascending:NO delegate:self];
return _fetchedResultsController;
但是这段代码没有调用。
我的UIViewController
中有UITableView
。我想下面的这个方法应该启动上面的方法,但它没有:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
id sectionInfo =
[[_fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
所以目标是使用神奇的记录和fetchedResultsController
获取数据。
我当然可以制作类似 -findAll
的东西,但我认为 fetchedResultsController 会在数据到来时自动更新数据,而不是 -findAll
。
【问题讨论】:
【参考方案1】:你必须声明一个属性(如果你还没有这样做的话):
@property(strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
在视图控制器中, 然后通过 property accessor 而不是 instance variable 访问它,例如
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
id sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
self.fetchedResultsController
调用 getter 方法 fetchedResultsController
,以便在第一次调用时创建 FRC。
你也应该设置
_fetchedResultsController.delegate = self;
在getter方法内启用自动更改跟踪,并调用
[_fetchedResultsController performFetch:&error];
用于初始提取(除非 MagicalRecord 为您这样做)。
【讨论】:
以上是关于MagicalRecords 从 fetchedResultsController 获取数据的主要内容,如果未能解决你的问题,请参考以下文章
MagicalRecords importFromArray 返回空数组
Magical Records:加载要在本地上下文中更新的记录
Magical Records - 如何使用关键路径映射关系?
我正在尝试从 Magical Records 获取最新添加的数据