为什么我的NSFetchedResultsController委托在添加NSPredicate时会停止触发?

时间:2012-03-17 14:19:04

标签: ios ios5 nspredicate nsfetchedresultscontroller

我有一个NSFetchedResultsController在表视图中显示“位置”,但是当我更新应该在另一个视图控制器中显示的一组位置时,我的FRC不会更新表视图。

这是一般问题。我的具体案例似乎围绕着NSPredicate支持我的FRC,因为当我删除NSPredicate(并且只是获取所有位置)时,一切正常。

我的查询是

@"ANY photos.isFavorite == %@", [NSNumber numberWithBool:YES]

地方照片有一对多的关系(我正在通过CS193P工作)。也许我的FRC没有设置为观察相关表格或其他内容的变化?

关于我的情况的一些其他信息:

3 个答案:

答案 0 :(得分:4)

我不知道这是不是你的情况,但无论如何我都会发帖。也许它可能是一个有效的解决方法。

NSFetchedResultsController pitfall

希望它有所帮助。

答案 1 :(得分:0)

  • 您是否尝试过测试更简单的谓词,例如使用照片一对一关系而不是照片?

  • “我的FRC不更新表格视图” - 您使用的是-controllerDidChangeContent :?你确认它没有被调用吗?我已经看到与文档相反,在此方法中从tableView调用reloadData是不安全的,因为该方法可能在辅助而不是主线程上调用。

  • 您是否在同一个(主?)线程上执行与MOC相关的所有操作?

答案 2 :(得分:0)

请尝试使用此谓词吗?

@"%@ IN photos.isFavorite", [NSNumber numberWithBool:YES]