swift - 无法在 if 语句中设置查询?

标签 swift if-statement cloudkit ckrecord

基本上,我试图根据从前一个表 Controller 获取的indexpath.row值在当前表 Controller 中设置特定查询。例如,

        if indexpath1 == 1 
        {
        let query = CKQuery(recordType: "American", predicate: predicate)
        }
        else
        {
        let query = CKQuery(recordType: "Bistro", predicate: predicate)
        }

        publicDatabase.performQuery(query, inZoneWithID: nil) { (results, error) -> Void in

但是,performquery 函数出现了“使用未解析的标识符“查询”。

我是否需要在 if 语句之前将查询设置为一个值,以充当根据 if 语句更改的基值?或者我无法完成这个逻辑?

最佳答案

这是一个基本的范围问题,您在 if 内创建一个本地查询实例,但这不会在这个世界上产生任何好处。

var query: CKQuery
if indexpath1 == 1 {
        query = CKQuery(recordType: "American", predicate: predicate)
        }
        else
        {
        query = CKQuery(recordType: "Bistro", predicate: predicate)
        }

        publicDatabase.performQuery(query, inZoneWithID: nil) { (results, error) -> Void in

或者也许更优雅一点:

let recordType = indexpath1 == 1 ? "American" : "Bistro"
let query = CKQuery(recordType: recordType, predicate: predicate)
publicDatabase.performQuery(query, inZoneWithID: nil) { (results, error) -> Void in {
    //...
}

关于swift - 无法在 if 语句中设置查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37606264/

相关文章:

ios - 使用 AVPlayer 进行流式传输很慢

excel - 嵌套 IF 以用零填充数字

ios - cloudkit 错误没有收到 Assets 的 authToken

swift - 使用异步显示工具包/cloudkit 批量获取

SwiftyDropbox 下载进度

swift - 从推送打开 View Controller 时,汉堡菜单不会加载

ios - 如何在 Flutter 中禁用 InAppWebView 的缩放?

javascript - jQuery - 检查是否选择了多个单选按钮组,然后返回那些没有选择的名称

python - 带 pass 语句的条件

ios - CloudKit NSPredicate 不区分大小写