【问题标题】:NSPredicate in NSFetchedResultsController doesn't use Category's getterNSFetchedResultsController 中的 NSPredicate 不使用 Category 的 getter
【发布时间】:2013-09-01 12:25:31
【问题描述】:

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

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

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

【问题讨论】:

  • 您使用的是 SQLite 商店?
  • 是的,我正在使用 SQLite。

标签: ios nspredicate nsfetchedresultscontroller


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多