NSFetchedResultsController的范围

时间:2015-06-30 06:30:32

标签: ios core-data

如果观察到的实体的属性发生变化,Restart application 是否有效?

例如,我为名为NSFetchedResultsController的类配置了NSFetchedResultsController。现在,此conversation可以包含conversation数组。此属性messages上的允许操作是已读/未读或已删除。

因此,在某个阶段,如果我删除某条消息或将其标记为已读或更新消息,messages结构的状态是否会变脏,我的原始获取结果控制器是否会返回更新的Conversation修改后的conversation

的值

2 个答案:

答案 0 :(得分:1)

如果您有一个messages数组,是的。如果messages是一种关系,那么某些更改将导致更新(添加或删除),而某些更改将赢得(读取或未读取)。这是因为FRC正在跟踪Conversation而非Message实体的变化。

不同之处在于,如果Message不是一个实体并且您正在使用数组,那么messages实际上是一个二进制数据blob,任何更改都完全在{{ 1}}。

答案 1 :(得分:1)

正如已经指出的那样,获取的结果控制器不会对与其主要获取请求的实体不同的关系实体的属性的变化作出反应。

一种解决方案是让Message实体在属性更改时通过通知中心发出自己的NSNotification,并让包含获取结果控制器的视图控制器监听它。