2013-07-30 3 views
0

У меня есть NSPredicate использовать поиск Core Data:NSPredicate строка

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"objID == %@ AND createDate >= %@ AND createDate <= %@",self.objID, self.fromDate, self.toDate]; 

Я хочу расширить этот предикат, чтобы включить диапазон дат или если «createDate» равна нулю. Я не знаком с поиском по типу SQL.

Basiclly, я хочу найти все Core Data объектов с objID и в диапазоне дат или ноль.

if (objID == X && ((dateRange >= fromDate && dateRange <= toDate) || dateRange == nil)) 

Как это сделать?

+0

Вы пытались перевести это в предикат? – Wain

ответ

1
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"objID == %@ AND (createDate >= %@ AND createDate <= %@ OR createDate = nil)",self.objID, self.fromDate, self.toDate]; 

Я только что добавил OR createDate = nil.

Проверьте this ответ. Кристофер Пикслей сказал, что вы можете использовать «nil» или «NULL», но не «NIL».

+0

Мне не нужно беспокоиться о том, как их группировать, как в if if stmt? – Padin215

+1

@ Log139, утверждения групп NSPredicate по алгебре логики. A AND B OR C равно (A AND B) ИЛИ C –

+0

@ Log139, извините, я не отмечал скобки. Я отредактирую свой пост –