我正在使用Master-Detail模板,tableView.insertRowsAtIndexPaths需要大约20-25秒才能在主视图中添加一行(在我添加代码之后)。我是iOS开发人员的新手,所以我想知道如何诊断这种性能问题。
当我单步执行代码时,我可以看到所有内容似乎都很快完成,但应用程序在__NSCFLocalSessionTask _task_onqueue_didFinish中四处走动)_block_invoke
我意识到这并不多。我希望有人能指出我正确的方向。
let service = Service()
service.getJson(url!) { (json, error) -> () in
if error != nil && json != nil {
print(error!)
//return error!
} else {
jsonResult = json
if let nameResult:AnyObject = jsonResult["name"] {
// Insert the new Board in the Master list
self.objects.insert(nameResult, atIndex: 0)
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
self.activityIndicatorView.stopAnimating()
答案 0 :(得分:0)
感谢@Martin R快速获得此功能。我没有强迫UI更新到主线程。
dispatch_async(dispatch_get_main_queue()) {
self.objects.insert(nameResult, atIndex: 0)
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
self.activityIndicatorView.stopAnimating()
}