无法在 if 语句中设置查询?
Unable to set query inside if-statement?
基本上,我试图根据从以前的 table 控制器获取的 indexpath.row 值在当前 table 控制器中设置特定查询。例如,
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 函数随"use of unresolved indentifier "查询一起出现。
我是否需要在 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 {
//...
}
基本上,我试图根据从以前的 table 控制器获取的 indexpath.row 值在当前 table 控制器中设置特定查询。例如,
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 函数随"use of unresolved indentifier "查询一起出现。
我是否需要在 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 {
//...
}