Swift NumberOfRowsInSection Неожиданное возвращаемое значение в void - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь либо показать, либо не показывать свой «NoPostsView» в зависимости от моей базы данных firebase.

Это моя функция, чтобы узнать, есть ли сообщения:

func checkIfPostsExists(YES: @escaping () -> Void, NO: @escaping () -> Void)
{
     REF_POSTS.observeSingleEvent(of: .value, with:
     {
         (snapshot) in
         if snapshot.exists()
         {
             YES()
         }
         else
         {
             NO()
         }
     })
}

И вот как я это использую:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    checkIfPostsExists(YES:
    {
        if self.posts.count <= 0
        {
            return 7 // ERROR IS IN THIS LINE
        }
        else if self.posts.count != 0
        {
            self.noPostsView.isHidden = true
        }
    })
    {
        self.noPostsView.isHidden = false
    }
    return posts.count
}

Я получаю ошибку:

Неожиданное возвращаемое значение в void функции

Я почти уверен, что это вызвано тем, что я вернул 7 в этой функции, но, похоже, я не могу исправить ошибку.

1 Ответ

0 голосов
/ 01 ноября 2018

Вы должны быть в состоянии сделать что-то вроде этого ...

// uses a completion with a boolean value to show whether has posts or not
private func hasPosts(completion: (Bool) -> Void) {
    // check posts and then at some point return a boolean
    completion(true) 
}

// check if has posts and either show tableView or noPostsView
override func viewDidLoad() {
   super.viewDidLoad() 

   hasPosts() { hasPosts in 
      if hasPosts {
          tableView.dataSource = self
          // maybe other logic
      }
      noResultsView.isHidden = hasPosts
      tableView.isHidden = !hasPosts
   }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...