基本上我试图在当前表控制器中设置一个特定的查询,具体取决于从前一个表控制器获取的indexpath.row值。例如,
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语句更改的基值?或者我无法完成这个逻辑?
答案 0 :(得分:0)
这是一个基本的范围问题,你在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 {
//...
}