基本上,我试图根据从前一个表 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/