NSFetchedResultsController didChangeObject indexPath 为空

Posted

技术标签:

【中文标题】NSFetchedResultsController didChangeObject indexPath 为空【英文标题】:NSFetchedResultsController didChangeObject indexPath is null 【发布时间】:2013-01-17 16:12:52 【问题描述】:

我正在使用 NSFetchedResultsController 来管理带有 CoreData 的 PSTCollectionView 的实现。当我实现以下方法时, indexPath 和 newIndexPath 参数都通过 null

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath

    switch (type) 
        case NSFetchedResultsChangeInsert:
            NSLog(@"%@", indexPath);
            NSLog(@"%@", indexPath);
            NSLog(@"______");
            break;

        default:
            break;
    

几个小时以来,我一直在用这个把头撞在砖墙上,所以很感激任何指点。这可能与多线程有关吗?我正在一个单独的 NSManagedObjectContext 实例的后台线程中处理一个大型 JSON 文件。

谢谢

【问题讨论】:

【参考方案1】:

因为插入没有 [old]indexPath?检查newIndexPath 参数

【讨论】:

我以为我正在注销 newIndexPath。这个错字花了我 3 个小时。感谢您的帮助

以上是关于NSFetchedResultsController didChangeObject indexPath 为空的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 应用程序中调用 performFetch 后,是不是需要手动更新表视图?