2015-09-06 46 views
1

我正在使用Master-Detail模板,並且tableView.insertRowsAtIndexPaths需要大約20-25秒的時間才能將單行添加到主視圖中(在添加完代碼後)。我是iOS開發新手,所以我想知道我應該如何診斷這種性能問題。Swift:我該如何調試這種糟糕的性能?

當我通過代碼,我可以看到,一切似乎都很快完成,但應用程序進去__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

你可以請張貼一些代碼嗎? – Siriss

+0

完成,但不知道它會有多大的幫助。我添加了跟蹤,每段代碼都很快完成。我在撓頭。 – beachCode

+3

難道這是「UI更新必須在主線程上完成」的無數次重複嗎? –

回答

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() 
    } 
相關問題