gpt4 book ai didi

swift - 将 NSPredicate/NSCompoundPredicate 与 Where 子句或可选返回值一起使用,CloudKit

转载 作者:行者123 更新时间:2023-11-28 06:52:29 25 4
gpt4 key购买 nike

不确定主题行是否有意义,我有一个运行良好的 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])

最佳答案

首先,customTypes 不是谓词,因此您发布的代码应该会崩溃。您需要构建一个考虑到自定义类型 2 和 3 之间差异的谓词。

NSPredicate(format: 
"(customType = 2 && userName contains %@) || (customType = 3)", "Smith")

关于swift - 将 NSPredicate/NSCompoundPredicate 与 Where 子句或可选返回值一起使用,CloudKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34501835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com