4
我正在尝试创建一个NSPredicate,以在某个日期范围内查找包含“会话”的“项目”。我想这首先:核心数据ANY BETWEEN谓词
[NSPredicate predicateWithFormat:@"ANY sessions.date BETWEEN {$STARTDATE, $ENDDATE}"];
但我得到一个异常:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'to-many key not allowed here'
看来间不与任何以这种方式工作。我也限制使用的()和AND子句的意思是,我不能使用这样的:如果我尝试,我得到一个解析错误
[NSPredicate predicateWithFormat:@"ANY (sessions.date > $STARTDATE && sessions.date < $ENDDATE)"];
。当然sessions.date是一个真正的集合,所以这样做并没有太大的意义。
我该怎么做?
感谢
UPDATE:需要注意的是这样的:
[NSPredicate predicateWithFormat:@"ANY sessions.date > $STARTDATE && ANY sessions.date < $ENDDATE"];
不正确,因为它返回一个项目中,有一个会议于开始日期,另一个会话小于结束日期,但没有会话更大在之间。
哇,我从来不知道SUBQUERY。谢谢,这工作。 – 2010-04-13 20:06:40
SUBQUERY的东西有点埋在NSExpression文档中,并没有在Core Data特定的指南中得到很多处理。肯定地提出一个增强请求,并让苹果伙计们知道你会在哪里找到它(但没有找到你需要的信息)。 – 2010-04-13 23:39:52