Swift 在queryForTable()中使用UISwitch更改parse.com类

Swift 在queryForTable()中使用UISwitch更改parse.com类,swift,uiswitch,Swift,Uiswitch,我尝试使用UISwitch在parse类之间切换。 我在parse中有两个类mainClass和recentClass,我试图使用语法在它们之间切换 我已经声明了查询 像这样在班上名列前茅 @IBOutlet weak var barSwitch: UISwitch! var query = PFQuery(className: "mainClass") func switchChanged(barSwitch:UISwitch){ if (barSwitch.on

我尝试使用UISwitch在parse类之间切换。 我在parse中有两个类mainClass和recentClass,我试图使用语法在它们之间切换

我已经声明了查询 像这样在班上名列前茅

  @IBOutlet weak var barSwitch: UISwitch!

 var query =  PFQuery(className: "mainClass")  


 func switchChanged(barSwitch:UISwitch){

    if (barSwitch.on == true) {

        dispatch_async(dispatch_get_main_queue(),{ () -> Void in

          self.query = PFQuery(className: "recentClass")

            self.tableView.reloadData()

        }
    ) }
        else   {

        dispatch_async(dispatch_get_main_queue(),{ () -> Void in

            self.query = PFQuery(className: "mainClass")

            self.tableView.reloadData()
            print("button was pressed")

            }
        ) }

    }
我不知道如何在queryForTable()中使用该开关


根据@Tim,我已经编辑了,但它仍然不起作用。

您正在switch函数中声明
query
,因此它不会更改您的类变量。在func中的
query
前面取出
let
var

另外,在
分派
中,您可能需要放置
self.query

queryForTable
中调用
开关changed
函数:

override func queryForTable() -> PFQuery {

    switchChanged(barSwitch)

    if (objects?.count == 0) {
        query.cachePolicy = PFCachePolicy.CacheThenNetwork
    }
    query.orderByAscending("SNo")

    return query
}

你能把你试过的贴出来吗?我在回答中加了一条评论。当你说它“不起作用”是什么意思?它是否始终保持在
mainClass
上,或者您是否收到错误?来自mainClass的数据仅显示.updated。当然,您也可以使用@IBAction func来设置
查询
。如何使用它。我不明白
override func queryForTable() -> PFQuery {

    switchChanged(barSwitch)

    if (objects?.count == 0) {
        query.cachePolicy = PFCachePolicy.CacheThenNetwork
    }
    query.orderByAscending("SNo")

    return query
}