gpt4 book ai didi

iphone - 在 NSFetchedResultsController 跟踪更改时重置 NSPersistentStore 后崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:58 26 4
gpt4 key购买 nike

这是我正在尝试做的事情:

  1. 我使用 NSFetchedResultsController 执行提取并使用其委托(delegate)跟踪更改
  2. 我下载了一些数据,根据某些情况,我有时会通过删除 NSPersistentStore 并重新创建一个新的来删除 CoreData 存储的所有本地数据。
  3. 我根据数据创建托管对象并保存它们
  4. NSFetchedResultsController 现在应该通知我我有一些更改

我得到的是尝试保存数据时的崩溃:

CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. Object's persistent store is not reachable from this NSManagedObjectContext's coordinator with userInfo (null)

我总是使用单个 NSManagedObjectContext 并且我总是在主线程上读取和保存。

似乎切换 NSPersistenStore 会以某种方式弄乱获取的结果 Controller 。这是预期的行为还是我做错了什么?

最佳答案

我不推荐这种方法。我会用你的新持久存储创建一个新的 MOC,并放弃旧的 MOC。

我假设您在某个时候调用了 -[ManagedObjectContext reset]?在执行此操作之前,您必须放弃来自该上下文的所有托管对象。它们都变得无效(这可能是您崩溃的原因)。

您还应该看看 How to force coredata to rebuild sqlite database model? .

关于iphone - 在 NSFetchedResultsController 跟踪更改时重置 NSPersistentStore 后崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com