2016-03-26 18 views
1

biz dinlenme çağrı yoluyla veri yükleme vardır: ızgara verileri ancak gösterilmeyenSwift UITableView reloadData() kullanıcı arayüzü davranışı

let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in 
    //Update data store…. 
    self.tableView.reloadData() 
}) 
task.resume() 

. Simülatördeki ızgaraya tıklamanız gerekir - bunu yaptığınızda, veriler gösterilir. Verilerin herhangi bir UI etkileşimi olmadan otomatik olarak yüklenmesini sağlamak için burada ne eksik?

cevap

4

Ana iş parçacığında reloadData() yönteminin çalışması gerekir. dataTaskWithRequest(_ request: NSURLRequest) arka plan iş parçacığında çalışır:

let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in 

    dispatch_async(dispatch_get_main_queue(),{ 
     //Update data store…. 
     self.tableView.reloadData() 
    }) 

}) 

task.resume() 
+0

İşler teşekkürler. Bir şey - ben veri deponun dispatch_async çağrı dışında/üstünde güncelleme koydu. –

+0

@MarcusLeon Endişelenme yok, sadece UI görevleri ana iş parçasında çalışmalıdır. – angeldev

2

Tamamlama işleyicisi arka plan iş parçacığı üzerinde çağrılır. Ana iş parçacığına/kuyruğa reloadData numaralı telefonu aramanız gerekir.

İlgili konular