2015-05-20 4 views
0

Я хочу запустить запрос, чтобы определить количество строк в таблицеView в Swift. Когда я использую метод results.count запроса я получаю следующее сообщение об ошибке:Int не конвертируется в Void в Swift tableView

Int? is not convertible to 'Void'

Вот функция, которая бросает ошибку:

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

     if let user = self.user { 

      var currentUserQuery = PFQuery(className: "Game") 
      currentUserQuery.whereKey("user1", equalTo: PFUser.currentUser()!) 
      currentUserQuery.whereKey("isActive", equalTo: true) 

      var currentUserQuery2 = PFQuery(className: "Game") 
      currentUserQuery2.whereKey("user2", equalTo: PFUser.currentUser()!) 
      currentUserQuery2.whereKey("isActive", equalTo: true) 

      var query = PFQuery.orQueryWithSubqueries([currentUserQuery, currentUserQuery2]) 
      query.findObjectsInBackgroundWithBlock{ 
       (results: [AnyObject]?, error: NSError?) -> Void in 

       if error != nil { 
        println(error) 
       } 

       if error == nil{ 

        //continue an active game that already exists with the user 
        if results != nil{ 

         return results!.count as? Int 

Если изменить (results: [AnyObject]?, error: NSError?) -> Void к (results: [AnyObject]?, error: NSError?) -> Int я получаю другая ошибка:

Cannot invoke 'findObjectsInBackgroundWithBlock' with an argument list of type '(([AnyObject]?, NSError?) -> Int)'

Что я должен делать?

Спасибо!

+0

вы не можете вернуть его с помощью метода синхронизации –

+0

Спасибо за ответ! Есть ли решение, которое вы рекомендуете? – winston

+0

, заполнив таблицу или просто перезагрузив ее после извлечения вашей информации. –

ответ

0

Вам необходимо удалить? от вашего возвращения, до объявления функции решить, являются ли эти значения необязательными или нет.

(results: [AnyObject], error: NSError) -> Void in 
+0

Спасибо за ответ! Когда я это делаю, я получаю 'Невозможно вызывать 'findObjectsInBackgroundWithBlock' с помощью списка аргументов типа '(([AnyObject], NSError) -> Void)'' – winston

+0

Он все еще видит «'(([AnyObject] ?, NSError?) - > Пустота), "видят ли они"? " в типе? Не должно быть там, вам нужно удалить его, они должны быть «» (([AnyObject], NSError) -> Void) « – Icaro

+0

Простите, это была плохая копия/вставка. Он не видит вопросительный знак. Ошибка: 'Невозможно вызвать 'findObjectsInBackgroundWithBlock' с помощью списка аргументов типа '(([AnyObject], NSError) -> Void)'' – winston

Смежные вопросы