【发布时间】:2015-12-28 22:42:05
【问题描述】:
不确定主题行是否有意义,我有一个 NSCompoundPredicate,它工作得很好,它会在 24 小时内查询日期,如果记录被“阻止”,并且也只返回我的自定义“类型”的记录。
我所说的自定义类型的意思是值可以是 1、2 或 3。所以我希望我的查询返回类型 2 和 3 的值,这很有效。但是,对于有 3 的花哨部分,云套件数据库中的“用户名”值下也会有一个字符串值。在类型 2 下,用户名将为空。
所以我想返回所有用户名为“Smith”的类型 3,然后还返回所有类型 2,根本没有用户名。我在获取用户名为 smith 的类型 2 和 3 时遇到问题,我拥有它的方式只返回名称为 smith 的用户,而不返回任何类型 2。需要一种让 UserName 谓词成为可选的方法吗?
代码:
let predName = NSPredicate(format: "UserName CONTAINS %@", "Smith")
let customTypes = [2, 3]
let time = 86400
let fromDateDay: Double = (NSDate().timeIntervalSinceReferenceDate - time)
let predDate = NSPredicate(format: "date >= %f", fromDateDay)
let predBlocked = NSPredicate(format: "blocked != %d", 1)
pred = NSCompoundPredicate(andPredicateWithSubpredicates: [customTypes, predDate, predBlocked, predName])
【问题讨论】:
标签: swift nspredicate cloudkit