【发布时间】:2014-02-10 15:41:25
【问题描述】:
我有一个 UITableView,其中每个部分都包含一行,每行都包含一个 UICollectionView。 UITableView 是数据源并委托给 Core Data 数据库。对数据库的更新调用 NSFetchedResultsController 的控制器:didChangeObject:将块排队以更新相关集合的方法:
switch (type) {
case NSFetchedResultsChangeInsert: {
[self.blockOperation addExecutionBlock:^{
[collectionView insertSections:[NSIndexSet indexSetWithIndex:newIndexPath.section] ];
}];
break;
}...
然后我想在这里批量执行块:
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
{
[collectionView performBatchUpdates:^{
[self.blockOperation start];
} completion:^(BOOL finished) {
// Do whatever
}];
}
这是使用 Ash Furrow 和 Blake Watters 的 techniques 将核心数据数据库连接到 UICollectionView。
我的问题是,如何访问-controllerdidChangeContent: 中正确的collectionView 对象? self.blockOperation 中的每个块都有相关的 collectionView,但我不知道如何从 NSBlockOperation 的 executionBlocks 属性中解析出来,或者即使这是最好的方法。 Ash 和 Blake 的示例只有一个 UICollectionView,而我有很多。
【问题讨论】:
标签: ios objective-c core-data uicollectionview