2017-11-10 12 views
1

ユーザを表示するUITableViewがありますが、初めて表示されますが、reloadData()が呼び出されたときには更新されません。次のようにSwift Parse.com NSMutableArrayを更新した後、UITableViewがreloadDataを返しません。

のtableView reloadDataと機能を開始するコードは以下のとおりです。

let query = PFQuery(className: UserModel.parseClassName()) 
    query.whereKey("gender", equalTo: current.sexe) 
    query.limit = countPerPage 
    query.skip = pageIndex * countPerPage 
    query.order(byAscending: "fullname") 
    query.findObjectsInBackground(block: {(objects: [PFObject]!, error: Error!) -> Void in 

     if error == nil { 

      for object in objects as! [UserModel]{ 

       self.userArray.add(object) 
      } 

      self.serachTable.reloadData() 

     } else { 
      print("error") 

     } 
    }) 
+1

メインスレッドで一度更新してチェックしてください。 –

+0

テーブルの 'datasource'メソッドと' delagate'メソッドで更新してみてください。 –

+0

@ 3つのコインどのように? –

答えて

0

reloadDataは、メインスレッドで呼び出さなければなりません。

DispatchQueue.main.async { 
     self.serachTable.reloadData() 
} 
+0

それは動作しません、私はメインスレッドにfuncを置く必要がありますか? –

+0

あなたのデータソースは 'userArray'からデータをロードしていますか? – Alexey

0

まずあなたself.userArrayからデータを削除し、その呼ばリロードテーブルビュー後

self.userArray.append(object)

などのデータを追加します。DispatchQueue.main.asyncreloadData周りを追加します。これを行う前に、ビューコントローラで接続されたデータソースとデリゲートを確認してください

関連する問題