【发布时间】:2013-03-25 00:16:25
【问题描述】:
我正在一个名为Todolists 的表上运行谓词搜索。 Todolists有todos。
我正在尝试获取所有Todolists,其中due_at (Date) 是<= 某个Date 或due_at Date 是nil。
以下谓词可以正常工作,并获取所有Todolists,其中Todos 在某个日期之前。
NSDate *now = [NSDate date];
int daysToAdd = _dueDateSlider.intValue;
NSDate *datePeriod = [now dateByAddingTimeInterval:60*60*24*daysToAdd];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY todos.due_at <= %@", datePeriod];
但是,以下NSPredicate 搜索会返回所有结果,即使有些结果是due_at Date,有些是nil。
NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY todos.due_at = nil"];
当我 NSPredicate 搜索 Todos 表时,due_at = nil 似乎工作正常,但在连接搜索中执行时却不行。
目标是完成这项工作:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY todos.due_at <= %@ OR todos.due_at = nil", datePeriod];
如何在连接表中进行谓词搜索以查找 nil 值?
=======更新======
我试图用它作为我的谓词:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(todos.due_at <= %@) || (todos.due_at = nil)", datePeriod];
但它会导致此错误:
-[__NSArrayI compare:]: unrecognized selector sent to instance 0x1001e36b0
【问题讨论】:
标签: ios objective-c sqlite nspredicate