2016-04-17 13 views
-1

私は私の細胞を提示するためのネットワークと、メインスレッドから自分のデータを取得するため、バックグラウンドスレッドを使用しています:なぜ私の細胞が同時にロードされないのですか?

dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0), { 
    let _ = self.http.getInfo() { (result) in 
     self.cellsArray = result 

     dispatch_async(dispatch_get_main_queue(), { 
      self.tableView.reloadData() 
     }) 
     completion(completed: true) 
    } 
}) 

self.http.getInfoは私のネットワークに関する情報を取るためのNSURLSession.sharedSession().dataTaskWithRequest方法です。

そして、私は私のアプリを実行したときに、私の細胞のように個別に表示を開始:最初が表示され、次のいずれかが表示されます。第二に、2秒、彼らは同じでは表示されません。なぜ、次の1等

で時間?また、バックグラウンドとメインスレッドを使用しているため、無限スクロールを実装して新しいセルをセル配列に追加すると、UITableViewがジャンプします。

どうすれば修正できますか?

答えて

0

書込みself.tableView.reloadData()このステートメントは完了ハンドラNSURLSession.sharedSession().dataTaskWithRequestです。

+0

他のファイルからテーブルビューを更新するにはどうすればよいですか? –

+0

別のファイルを意味しますか? – Lion

+0

私は2つのファイルを持っています:ネットワークとUITableViewController。私のネットワークファイルでは 'dataTaskWithRequest'を行い、それを私のUITableViewControllerに表示します。私はNSNotificationCenterを経由してネットワークファイルからtableViewをリロードしようとしましたが、それでもまだバグがあり、ジャンプしています –

関連する問題