NSFetchRequest 不读取更新的行 [关闭]
Posted
技术标签:
【中文标题】NSFetchRequest 不读取更新的行 [关闭]【英文标题】:NSFetchRequest does not read updated rows [closed] 【发布时间】:2013-08-19 20:34:45 【问题描述】:数据通过(子/父上下文)在后台线程中下载并写入核心数据 使用 NSFetchRequest 第一次读取是可以的。刷新后,我从核心数据中提取数据并用新值更新它。再次在主线程/主上下文中读取数据 NSFetchRequest。它仍然返回旧值。我检查了核心数据表,其中包含新值。并且我可以在杀死并重新启动应用程序后看到更新的数据。
我做错了什么?
ps:抱歉无法发布代码。这是一个巨大的项目。基于核心数据的项目的所有其他部分都可以完美运行。只有这部分让我紧张。 :-(
【问题讨论】:
没有一些代码,很难提供帮助。 我了解到在 UI 上使用主上下文中的对象保持不变,即使对象在后台上下文中更新。所以我已经更新了主线程上的行,现在一切正常。这部分没问题,因为对象的数量不超过10行。如何从主上下文中释放这些对象或在后台更新它们? 【参考方案1】:问题是 fetchresult 控制器在主线程上检索对象,我必须对多个属性进行分组并计算当前时区的日期。所以我在后台线程中完成了这一切。我再次了解到核心数据对象不是线程安全的!
【讨论】:
以上是关于NSFetchRequest 不读取更新的行 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSFetchRequest 和 NSPredicate 时,SwiftUI 列表更新缓慢
NSFetchedResultsController 中的 NSFetchRequest setFetchOffset
错误:找不到要更新的行。自上次读取以来,某些值可能已更改。关于将提供程序从 SQLOLEDB 更改为 MSOLEDBSQL