用queryForTable()更改parse.com类与UISwitch

问题描述:

我试图在使用UISwitch的解析类之间切换。 我有两个类mainClass和recentClass在解析,我试图通过使用语法在它们之间切换。用queryForTable()更改parse.com类与UISwitch

我已经在这个类的顶部声明了查询 。

@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()

override func queryForTable() -> PFQuery { 


    if (objects?.count == 0) 
    { 

     query.cachePolicy = PFCachePolicy.CacheThenNetwork 


    } 
    query.orderByAscending("SNo") 

    return query 
} 

按@Tim我已经编辑但它仍然不工作。

你在switch函数中重新声明query,所以它不会改变你的类变量。在函数中取出letvarquery之前。

另外,在dispatch内,您可能需要输入self.query

要呼叫queryForTableswitchChanged FUNC:

override func queryForTable() -> PFQuery { 

    switchChanged(barSwitch) 

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

    return query 
} 
+0

我都试过,但它不工作@Tim –

+0

你可以发布你试过吗?我在答案中添加了一条评论。 – Tim

+0

我上面编辑了我的代码。请建议 –