ios - [上下文保存]后,用于关系的核心数据 NSPredicate 不起作用

标签 ios objective-c core-data nsfetchedresultscontroller

我在核心数据中有两个实体(见下文),并使用 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/

相关文章:

iphone - 在设备中启动项目时出现问题

ios - LocalNotification-iOS 7.1模拟器上的UILocalNotificationDefaultSoundName不起作用

ios - UILabel 在内容的左右边缘剪裁斜体(倾斜)文本(iOS 6+)

ios - 有没有一种方法可以在不请求相机权限的情况下创建一个简单的 iOS 相机实例? ( swift 5.1)

ios - CocoaPod 的类别在运行时不可用

iphone - cocos2d CCSprite 碰撞问题

ios - iOS 键盘扩展中的 Coredata

iphone - 由于libdispatch-manager而崩溃

multithreading - 丢弃 NSManagedObjects

objective-c - 来自 AudioUnitRender 的错误 -50