我在核心数据中有两个实体(见下文),并使用 NSFetchedResultsController
和 [NSPredicate predicateWithFormat:@"calendar.subscribed == 1"];
来提取“事件”对象。
日历
- 已订阅(BOOL)
- 事件(与“事件”的一对多关系)
事件
- 日历(与“日历”的多对一关系)
一切正常,但如果我更改某些“日历”的 subscribed
属性并将上下文保存在其他线程中,则不会调用 controllerDidChangeContent
。
我可以强制重新获取吗?以及如何?
最佳答案
遗憾的是,FRC 仅监控作为获取主题的对象(在您的情况下为 Event
)。因此它不会识别相关对象属性的更改,即使这些更改可能会影响谓词的评估方式。
一种解决方法(如果您可以忍受性能损失)是,当您更改 Calendar
对象的属性值时,将关联的 Event
对象的值更改为它的现有值(value) - 理论上没有变化,但足以触发 FRC 重新评估该 Event
的谓词。
关于ios - [上下文保存]后,用于关系的核心数据 NSPredicate 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30807708/