当我循环并打印值时,我从核心数据实体获取所有值时,我有以下数据
我想过滤所有非emp类型的记录,而不是1的邀请,所有的值都是string类型。所以我的谓词是
let predicate = NSPredicate(format: "(type != %@) && (invitedBy != %@)","emp", "1")
当我使用此谓词获取值时,它返回空的最后4个值。
如果我必须在mysql中编写查询,我会编写
SELECT * FROM invite where type != "emp" AND invitedBy != "1"
我所写错误的谓词也是如此,我应该采用不同的方式。
感谢您的帮助。
答案 0 :(得分:1)
这是你的谓词:
NSPredicate(format: "(type != %@) && (invitedBy != %@)","emp", "1")
代替%@
,它与
(type != 'emp') && (invitedBy != '1')
您的投诉是
当我使用此谓词获取值时,它返回空的最后4个值。
这是你的最后一条记录:
emp:2:3214213211
让我们替换谓词并简化:
('emp' != 'emp') && ('2' != '1')
FALSE && TRUE
FALSE
因此,对于最后一条记录,谓词为false。事实上,所有记录都是错误的。您可以亲自手动测试其他记录以进行验证。
如果你想要一个对最后四条记录都是真的谓词,你可能会想要这样:
NSPredicate(format: "(type != %@) || (invitedBy != %@)","emp", "1")
答案 1 :(得分:0)