gpt4 book ai didi

iphone - 阻止 CoreData 返回缓存结果

转载 作者:行者123 更新时间:2023-12-03 21:06:31 26 4
gpt4 key购买 nike

我正在我的应用程序中通过 Core Data 查询 Client NSManagedObject,并在推送到我的 UINavigationsController 堆栈上的简单详细信息 UIView 中显示结果 - 没有什么复杂或异常的。

当我导航回此客户端对象的详细信息页面时,我还会在后台检查客户端的更新,如果有更新,我会在不同托管对象上下文的后台线程中悄悄更新我的数据存储。这是有效的,我通过 SQLite 数据库浏览器看到数据的更改出现在我的核心数据存储中,因此我知道数据已更新。

问题是,当我导航回同一个客户端时,我将看不到更改,除非我完全关闭我的应用程序或选择其他客户端,然后返回到我知道有更改的客户端。看来最后一个客户端对象获取请求正在由我的托管对象上下文缓存。

如何防止这种情况发生?

最佳答案

您需要注册NSManagedObjectContextDidSaveNotification穿越背景NSManagedObjectContext作为对象然后调用 mergeChangesFromContextDidSaveNotification:当通知在您的 NSManagedObjectContext 上触发时在主线程上。这在 Core Data Programming Guide: Concurrency with Core Data 中指定。 。并且不要忘记刷新 View 中的数据(如果是 TableView 调用 reloadData )

关于iphone - 阻止 CoreData 返回缓存结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6583954/

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