Swift:我如何调试这种糟糕的性能?

时间:2015-09-06 04:36:04

标签: ios swift

我正在使用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()

1 个答案:

答案 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()
    }