选项卡栏应用程序更新实体中的共享托管对象上下文不会传播到其他选项卡

Posted

技术标签:

【中文标题】选项卡栏应用程序更新实体中的共享托管对象上下文不会传播到其他选项卡【英文标题】:shared managed object context in tab bar application update entity not propagate to other tabs 【发布时间】:2011-10-21 22:24:01 【问题描述】:

我正在开发一个标签栏应用程序,它从 Flickr 获取地点和照片,将数据存储在 CD 中,并允许用户查看保存为收藏的照片。

此应用程序从应用程序委托共享托管对象上下文到其他选项卡。 Core Data 中有两个自定义实体:Places 和 Photos。这些具有适当的一对多和反向关系设置。

第一个选项卡从 flickr 获取数据并将其存储到核心数据中:

NavigationController -> TableViewController (of Places) -> TableViewController (of photos for selected place) -> ViewController (present photo & button to favorite)

第二个标签栏类似,但仅使用来自核心数据的输入,通过 Fetched 结果控制器:

NavigationController -> TableViewController(来自 CD 的位置)-> TableViewController(来自所选位置的收藏照片)-> ViewController(显示照片和按钮以切换收藏状态)

我遇到的问题是这种情况: 1) 在第一个标签中收藏一张照片。 2) 在第二个标签中查看照片并将收藏切换回否。 3) 返回第一个选项卡,照片实体仍然是最喜欢的 T_T。

我似乎无法将第二个选项卡中的更新传播到第一个。

我在设置属性后查看了 NSNotification,从托管对象上下文调用保存,但我很难过......帮助!

【问题讨论】:

【参考方案1】:

哇,我是个傻瓜。显然没有核心数据问题...只是我检查设置按钮标题 self.photo.isFavorite 是从 CD 返回的 nsnumber 不是布尔值...

所以 if(self.photo.isfavorite) 总是返回 yes

检查 1 现在是否解决

/队列表情符号

m(_ _)m ゴメンナサイ

【讨论】:

以上是关于选项卡栏应用程序更新实体中的共享托管对象上下文不会传播到其他选项卡的主要内容,如果未能解决你的问题,请参考以下文章

共享托管对象上下文

如何在选项卡栏控制器中更新选项卡上的视图

如果您想通过 Core Data 使用多个实体,您需要为每个实体提供一个托管对象上下文吗?

批量更新后更新托管对象上下文中的托管对象

继承托管对象

如何将托管对象上下文分配给 iOS 中的应用程序委托?