如何观察被管理对象上下文
每当我对应用程序第一个选项卡中的对象进行更改时,选项卡 2 中的更新都会自动更新,因为它使用 fetchedResultsController。现在我有第三个选项卡,它也应该自行更新,但我该怎么做呢?
我在第三个选项卡中只有 nsmangedObjectContext 来获取适当的数据。每当此上下文中的对象发生变化时,如何接收通知?
我也在努力解决如何使数据获取更高效的问题,因为选项卡 2 和选项卡 3 使用同一组数据。我目前正在选项卡 3 中进行另一次获取,以获取与选项卡 2 相同的数据。我不知道如何在不干扰 fetchedresultscontroller 的情况下使用选项卡 2 中的数据。
有关此主题的信息将不胜感激!
Whenever i make a change in the objects in the first tab of my application the updates are automatically upated in tab 2 becuase it uses a fetchedResultsController. Now i have a third tab that should also update itself, but how can i do that?
I only have a nsmangedObjectContext in the third tab to get the appropriate data. How can i receive notifications whenever the objects in this context change?
I am also struggeling with the question how i can make my data fetching more efficient, becuase tab 2 and 3 use the same set of data. I am currently making another fetch in tab 3, to get the same data as tab 2. I dont know how i can use the data from tab2 without disturbing the fetchedresultscontroller.
Information on this subject would really be appreciated!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您的表视图密切相关,那么您可以只使用一个
UITableViewDataSource
为它们提供数据,并让它管理NSFetchedResultsController
。从你的描述来看,这种情况的可能性很大。如果表视图不是很相似,那么使用单个
UITableViewDataSource
会创建过多的if()
逻辑,然后将您的NSFetchedResultsController
移动到单独的模型对象并在收到委托回调时发布 NSNotifications。然后,您的UITableViewDataSources
可以观察这些通知,以便在它们出现在屏幕上时进行自我更新。If your tableviews are very closely related, then you can just have a single
UITableViewDataSource
that provides data for both of them, and have it manage theNSFetchedResultsController
. From your description, this case seems very likely.If the tableviews are not very similar, such that having a single
UITableViewDataSource
would create excessiveif()
logic, then move yourNSFetchedResultsController
into an separate model object and postNSNotifications
when it receives delegate call-backs. YourUITableViewDataSources
can then observe those notifications to update themselves when they are on-screen.