2017-12-07 1 views
1

Ich benutze Alamofire, um Antwort von API zu erhalten, um Daten in tableviews zu laden, aber meine alamofire Funktionen funktionieren, aber nur in einigen Ansichtsteuerpulten verstehe ich nicht, was ich falsch mache. Und ich kenne die Alamofire-Funktion, weil ich Debugger verwendet habe, um meine Daten und Code zu verfolgen, aber ich sah das Problem, wo die Funktion nie vor der ersten Zeile der Funktion geht.Antwort von API mit Alamofire erhalten

Alamofire Funktion

Alamofire.request("\(baseURL)").responseJSON { response in 
      if let dict = response.result.value as? [[String: Any]] { 
       for obj in dict { 
        let latest = LatestNews(getLatest: obj) 
        self.moreNews.append(latest) 
       } 
      } 
      self.tableView.reloadData() 
     } 

Array und Model-Klasse

var latestNews: LatestNews! 

var moreNews = [LatestNews]() 

Antwort

1

Das Problem, das Sie haben, werden .. "es in einigen View-Controller funktioniert, aber in anderen nicht", ist das Ergebnis der Tatsache, dass Sie Ihre tableView in einem Hintergrundthread neu laden. Sie müssen es wie folgt in den Haupt-Thread verschieben:

DispatchQueue.main.async { 
     self.tableView.reloadData() 
    }