【发布时间】:2012-05-28 07:19:48
【问题描述】:
我有一个 Loans 实体,其 returnedDate 属性可以包含日期或为 NIL。与另一个实体 Items 存在一对多关系,因此项目可以与许多 Loans 相关联。我想创建一个谓词,我可以在其中找到当前没有loans.returnedDate==NIL 的所有项目。
假设我目前有以下:
Loan1-item1,returnedDate=NIL
Loan2-item1,returnedDate=5/4/2012
Loan3-item2,returnedDate=NIL.
我想要一个不返回任何项目的谓词。
NSPredicate *pred = [NSPredicate predicateWithFormat:@"!(ANY loaned.returnDate==nil)"];
返回 item1。
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(NONE loaned.returnDate==nil)"];
返回 item1。
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(ANY loaned.returnDate!=nil)"];
返回 item1。
谁能告诉我什么逻辑会返回适当的结果?
【问题讨论】:
-
抱歉,我不明白你的目标?如果您使用该测试用例查询没有
returnDatenil 的对象,您将始终获得一个元素。为什么需要返回 0 个元素?谢谢。 -
抱歉,我应该说明我的目标以明确这一点 - 我想查找当前未借出的项目列表!(returnDate==nil)。我认为问题在于,如果一个项目过去曾被退回,就像上面示例中的 item1 一样,它会被退回。
标签: core-data nspredicate one-to-many