NSFetchedResultsController中的NSPredicate不使用Category的getter

时间:2013-09-01 12:25:32

标签: ios nspredicate nsfetchedresultscontroller

我有一个名为seconds的int_32属性的属性。在一个类别中,我将该属性重新声明为readonly并覆盖getter以从其他属性创建它。问题是当我使用

[NSPredicate predicateWithFormat:@"SELF.seconds > %i"];

谓词不起作用,因为谓词不调用getter。它在我的其他代码中调用就好了,只是在谓词中。任何人都知道为什么会发生这种情况或如何解决这个问题? (除了重新创建NSFetchedResultsController)。

1 个答案:

答案 0 :(得分:4)

谓词转换为SQL并在商店中运行。它不会运行任何代码。因此,您只能使用数据存储中的存储值。没有瞬态属性,没有方法。

如果要在fetch中使用该属性,则应保存该值。这可以通过实现willSave并在保存任何其他值更改之前设置值来完成。