我正在寫一個應用程序,每當用戶點擊一個重新加載按鈕時需要從網站獲取其內容。當從NSOperation調用UITableView睡覺
如果他這樣做了一個NSOperation被註冊並投入NSOperationQueue。
當NSOperation開始時(START QUEUE),它檢查它的緩存並重新載入來自服務器的數據(CALL IMPORT1)。
完成此任務後,操作向我的UITableView發送通知,查詢數據庫(開始讀取/結束讀取),然後調用[self.tableView reloadData];
(RELOAD DATA START)
在此之前,所有內容均按預期工作。即使我輸入大約1.000個元素。
讓我瘋狂的事情是在「END QUEUE」和獲得第一個單元格(CREATE CELL START)之間存在某種睡眠。在這個睡眠之後,細胞按照它們應該被創造 - 非常快。
我無法弄清楚是什麼調用了這個「睡眠」。
任何人都可以給我一個提示什麼是錯的。
預先感謝鮑里斯
內viewDidAppear調用
2011-01-29 15:54:34.460 [30488:207] 開始閱讀2011-01-29 15時54分:34.461 [30488:207] END READING
2011-01-29 15:54:34.464 [30488:207] RELOAD DATA START 2011-01-29 15:54:34.468 [30488:207] GET SECTION 2011 -01-29 15:54:34.469 [30488:207] GET HEADER 2011-01-29 15:54:34.470 [30488:207] GET HEADER 2011-01-29 15:54:34.470 [30488:207] GET ROWS
2011-01-29 15:54: 34.471 [30488:207] CREATE單元開始2011-01-29 15:54:34.473 [30488:207] CREATE CELL STOP 2011-01-29 15:54:34.474 [30488:207] CREATE單元開始
2011-01-29 15:54:34.475 [30488:207] CREATE CELL STOP 2011-01-29 15:54:34.476 [30488:207] CREATE CELL START 2011-01-29 15:54:34.477 [30488:207] CREATE CELL STOP
2011-01-29 15:54:34.477 [30488:207] GET HEADER
經由通知調用
2011-01-29 15(粗體部分因爲的NSOperation的是新的):54:04.719 [30488:630B] START QUEUE 2011 -01-29 15:54:05.727 [30488:630b] CALL IMPORT1 START
2011-01-29 15:54:05.750 [30488:630b] CALL IMPORT1 STOP 2011-01-29 15:54:05.760 [30488:630b]電話查看 START 2011-01-2 9 15:54:05.767 [30488:630b]開始讀取
2011-01-29 15:54:05.771 [30488:630b] END READING 2011-01-29 15:54:05。781 [30488:630b] RELOAD DATA START
2011-01-29 15:54:05.786 [30488:630b] GET SECTIONS 2011-01-29 15:54:05.791 [30488:630b] GET HEADER 2011- 01-29 15:54:05.797 [30488:630B] GET HEADER
2011-01-29 15:54:05.802 [30488:630B] GET ROWS
2011-01-29 15:54:05.806 [ 30488:630b] CALL VIEW STOP 2011-01-29 15:54:05.811 [30488:630b] END QUEUE 2011-01-29 15:54:10.770 [30488:630b] CREATE CELL START 2011-01- 29 15:54:10.776 [30488:630b] CREATE CELL STOP 20 11-01-29 15:54:10.777 [30488:630b] CREATE CELL START
2011-01-29 15:54:10.778 [30488:630b] CREATE CELL STOP 2011-01-29 15:54: 10.778 [30488:630B] CREATE CELL START 2011-01-29 15:54:10.780 [30488:630B] CREATE CELL STOP
2011-01-29 15:54:10.781 [30488:630B] GET HEADER
找到解決方案... NSOperation將輔助線程的NSNotification發送到我的UITableViewController - 這會導致延遲。我在這個網站上找到了解決方案:http://cocoawithlove.com/2009/08/safe-threaded-design-and-inter-thread.html希望我的幫助有人! – Boris 2011-01-30 20:15:34