- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 UITableView
,它使用 2 个 NSFetchedResultsControllers
。每个 NSFetchedResultsController
只有一个部分。但是,该表有 4 个部分。我用 NSFetchedResultsControllers
之一的结果填充表的第 4 部分。到目前为止一切正常。但是,如果用户删除了第一部分的第一个单元格,则 NSFetchedResultsControllers
会发生变化。表格最后一部分中的行可能会被删除。当这个方法被调用时:
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath
{
UITableView *tableView = self.tableView;
switch(type) {
case NSFetchedResultsChangeInsert:
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeDelete:
NSLog(@"section: %d, row: %d", [newIndexPath section], [newIndexPath row]);
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
...
}
该部分始终为 0,因为它是 NSFetchedResultsControllers
的部分。因此,该部分与 TableView 中的正确部分不匹配。
有解决办法吗?我基本上想将 NSFetchedResultsController
的部分更改为 3 而不是 0。
最佳答案
我找到了一个解决方法,但如果有一个更漂亮的解决方案就更好了。
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath
{
UITableView *tableView = self.tableView;
if (newIndexPath != nil && controller == self.fetchedXController) {
newIndexPath = [NSIndexPath indexPathForRow:[newIndexPath row] inSection:3];
if ([tableView cellForRowAtIndexPath:newIndexPath] == nil) {
type = NSFetchedResultsChangeInsert;
}
}
if (indexPath != nil && controller == self.fetchedDomainsController) {
indexPath = [NSIndexPath indexPathForRow:[indexPath row] inSection:3];
}
switch(type) {
case NSFetchedResultsChangeInsert:
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeDelete:
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeUpdate:
[self configureCell:[tableView cellForRowAtIndexPath:newIndexPath] atIndexPath:newIndexPath];
break;
...
关于core-data - 多个 NSFetchedResultsController - didChangeObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880294/
我有一个 UITableView,它使用 2 个 NSFetchedResultsControllers。每个 NSFetchedResultsController 只有一个部分。但是,该表有 4 个
我正在学习 Swift 的同时构建一个博客阅读器。在此,我将数据保存到核心数据,并可以选择将文章标记为“已读”。当我使用 editActionsForRowsAtIndexPath 将它们单独标记为已
我已指定 NSFetchtedResultsController 作为属性... @property (nonatomic, strong) NSFetchedResultsController *c
我有一个带有核心数据的主/细节应用程序。我是核心数据的新手,所以我不明白为什么当我添加一个新实体时 context.save(&error) 返回 false (例如因为我不t 设置非可选属性)fun
我有一个由 NSFetchedResultsController 支持的 UITableView,它显示已被用户添加为书签的项目。项目可以从行内的按钮取消书签,这会导致问题。项目取消书签后,它应该从
我几乎尝试了所有方法,但无法弄清楚哪里出了问题。我有一个 NSFetchedResultsController 并从核心数据中获取一些帖子。然后我有一种方法,可以将新帖子插入同一上下文并保存上下文。通
我正在使用 NSFetchedResultsController 来管理带有 CoreData 的 PSTCollectionView 的实现。当我实现以下方法时,indexPath 和 newInd
这是代码,我通过 Magical Record 保存模型: MagicalRecord.saveWithBlock({ (localContext) -> Void in
在 Swift 2.0 中转换后我无法解决问题: "Objective-C method 'controller:didChangeObject:atIndexPath:forChangeType:n
在所有数据下载并插入 coreData 后,我使用 NSFetchedResultsControllerDelegate 显示我的单元格。我使用下面的代码来了解何时发生修改 [NSNotificati
我在请求中使用 NSFetchedResultsController 和 sortDescriptors 来填充包含大量结果的表。我注意到,当发生将行从表底部附近移动到顶部的更改时,根本不会调用 di
我在我的 UITableView 中使用 NSFetchedResultsController。我成功接收到对 - (void)controller:(NSFetchedResultsControll
Objective-C method 'controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:' provided by
我是一名优秀的程序员,十分优秀!