【发布时间】:2023-03-08 00:15:01
【问题描述】:
我有一个应用设计问题,希望有人能提供帮助。
让我们进行一个非常简单的设置:用于显示来自服务器的新闻项目的 Core Data 应用程序。
主线程/UI 有一个托管对象上下文,所有视图控制器都使用它来显示数据。
一个 NSOperation 在后台运行,检查服务器,它自己的上下文,在同一个持久存储上。
我想合并后台上下文中的更改,所以我使用 NSManagedObjectContextObjectsDidChangeNotification。
一些系统框架在内部使用 Core Data。如果您注册以从所有上下文接收这些通知(通过将 nil 作为对象参数传递给 addObserver... 方法),那么您可能会收到难以处理的意外通知。
所以,我想将我在主线程 MOC 中合并的通知过滤为来自后台操作 MOC 的那些更改。
获取/维护对后台操作 MOC 的引用的最简洁方法是什么,以便我可以将一些东西插入 addObserver 方法并正确过滤通知?我能想到很多涉及大量耦合的方法,但它们看起来都像是 hack。
有什么建议或想法吗?其他人如何处理这个问题?
【问题讨论】:
-
所以,我的问题的主要目的是如何以最少的组件之间的耦合来处理这个问题。例如,视图控制器之类的前端内容不必了解 NSOperations 之类的后端内容。
标签: iphone ios core-data nsmanagedobjectcontext