如果正在观察的实体的属性发生变化,NSFetchedResultsController会工作吗?
例如,我为一个名为NSFetchedResultsController的类配置了一个conversation。现在这个conversation可以有一个messages数组。对此属性messages的允许操作是读/未读或删除的。
因此,在某个阶段,如果我删除一条消息或标记为读或更新一条消息,那么Conversation结构的状态会变得脏吗?我的原始获取结果控制器会用修改后的messages返回更新的messages值吗?
发布于 2015-06-30 08:57:49
正如已经指出的,获取的结果控制器不会对与其主获取请求的实体不同的关系实体的属性变化作出反应。
一种解决方案是让消息实体在属性更改上通过通知中心发出自己的NSNotification,并让包含获取的结果控制器的视图控制器监听它。
发布于 2015-06-30 06:52:49
如果您有一个messages数组,是的。但是,如果messages是一种关系,那么有些更改将导致更新(添加或删除),而有些则不会(读取或未读取)。这是因为FRC正在跟踪Conversation中的更改,而不是Message实体。
区别在于,如果Message不是一个实体,而且您使用的是一个数组,那么messages实际上是一个二进制数据块,任何更改都完全是在Conversation上进行的。
https://stackoverflow.com/questions/31131151
复制相似问题