Синтаксис предиката NSFetchRequest - PullRequest
2 голосов
/ 19 июля 2010

У меня есть объект с именем Task в моей модели базовых данных.У сущности Task есть преобразуемый атрибут, который называется date.Класс атрибута date является классом, называемым TDate (который соответствует NSCoding, поэтому является трансформируемым атрибутом).TDate имеет свойство типа NSInteger, называемое month.

В моем NSFetchRequest я хочу получить все Task объекты определенного месяца.Я использую следующий предикат:

[NSPredicate predicateWithFormat:@"date.month == 7"]

Что должно дать мне все Task объектов в июле месяце.Однако с этим предикатом извлеченные объекты не возвращаются.Я могу подтвердить, что есть Task объектов, чей месяц - 7 (июль), вынув предикат.Что-то не так с моим синтаксисом предиката?

Спасибо

1 Ответ

2 голосов
/ 19 июля 2010

Если вы используете бэкэнд SQLite, вы не сможете выполнять поиск по изменяемым свойствам.В бэкэнде SQLite предикат запроса на выборку преобразуется в SQL и выполняется на механизме SQLite.Поскольку SQLite не знает какао, предикаты, которые выполняются в бэкэнде SQLite, не могут использовать преобразуемые свойства.

Если вы используете XML, двоичное хранилище или хранилище в памяти, вы можете использовать предикаты этого запросапреобразуемые свойства, поскольку весь граф объектов находится в памяти и запрашивается с использованием собственного какао.

...