【问题标题】:Cache of NSFetchedResultsController is invalid. When do I need to refetch a cache?NSFetchedResultsController 的缓存无效。我什么时候需要重新获取缓存?
【发布时间】:2016-04-21 16:40:36
【问题描述】:

我有一个崩溃。我猜这是因为 NSFetchedResultsController 的缓存无效。

Crashed: NSPersistentStoreCoordinator 0x145938b0
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000004
-[_PFBatchFaultingArray objectAtIndex:]


- (ManagedRoutePoint *managedPointAtIndex:(NSUInteger)index
                             withFetchResultsController:(NSFetchedResultsController *)controller {    
   id objectOrId = [[controller fetchedObjects] objectAtIndex:index];
}

在我的程序中,我添加和删除了一些 manageObjects。我希望我的缓存有效(对象不被释放)。 仅在删除 manageObject 时才需要更新缓存吗?

【问题讨论】:

  • 您在项目中使用 ARC 吗?几乎看起来像是对 NULL 指针的尊重。
  • 是的,我正在使用 ARC
  • 展示您是如何创建 FRC、使用的上下文,并解释触发更改的原因(告诉我们您正在使用的线程)
  • 我的项目代码是通过旧方法(后台线程+ privateContext)创建的。现在我想用 performBlock 重建它。我会告诉你崩溃是否还会继续。

标签: ios objective-c core-data nsfetchedresultscontroller


【解决方案1】:

当我从错误的调度队列访问托管对象时遇到了一些问题。我在添加时发现了这个

-com.apple.CoreData.ConcurrencyDebug 1 

通过 Xcode 的方案编辑器在命令行上到我的应用程序。

【讨论】:

    猜你喜欢
    • 2017-12-09
    • 2019-09-17
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多