NSPredicate в NSFetchedResultsController не использует геттер категории

У меня есть атрибут со свойством int_32, называемым секундами. В категории я переопределяю свойство как доступное только для чтения и переопределяю геттер, чтобы создать его из других свойств. Проблема в том, когда я использую

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

Предикат не работает, потому что геттер не вызывается предикатом. Он вызывается в моем другом коде просто отлично, просто не в предикате. Кто-нибудь знает, почему это произошло или как обойти эту проблему? (кроме воссоздания NSFetchedResultsController).


person Kevin    schedule 01.09.2013    source источник
comment
Вы используете магазин SQLite?   -  person Wain    schedule 01.09.2013
comment
Да, я использую SQLite.   -  person Kevin    schedule 01.09.2013


Ответы (1)


Предикат преобразуется в SQL и запускается в хранилище. Он не запускает ваш код. Таким образом, вы можете использовать только сохраненное значение в хранилище данных. Никаких переходных атрибутов, никаких методов.

Если вы хотите использовать атрибут в выборке, вам следует сохранить значение. Это можно сделать, внедрив willSave и установив значение непосредственно перед сохранением любых других изменений значений.

person Wain    schedule 01.09.2013