我有点迷路了,希望你能帮助我。
我有两个阵列
let stars = ["Paul", "Ringo"]
let visitors = ["bob", "mary"]
然后我有核心数据实体Rockstar和Person。以及两者之间的一对多关系粉丝。
现在我想找几个特定的摇滚明星,并确保他们没有访客作为粉丝。
我试着用一个复合谓词来做到这一点,大致如下:
let starsPredicate = NSPredicate(format: "id IN %@", stars)
let fansPredicate = NSPredicate(format: "NOT (fans.personid CONTAINS %@)", visitors)
最后是
let compoundPredicate = NSCompoundPredicate(andPredicateWithSubpredicates: [starsPredicate, fansPredicate])
恐怕这会导致两个问题:
风扇预测的正确语法是什么?它使用一个值可以很好地工作,但它在阵列上崩溃
这在复合谓词中可能吗?我认为如果Person实体为空,那么我从compoundPredicate中得到零条记录。
这可以通过"SUBQUERY"实现:
let fansPredicate = NSPredicate(format: "SUBQUERY(fans, $f, $f.personid IN %@).@count = 0",
visitors)
谓词对于没有相关的Person对象(其personId
在给定列表中(的所有Rockstar对象均为true。