我真的不知道如何標題這個問題,但這是一個真正殺死我的東西: 在我的應用程序中,我有一個UITableView,UISegmentedControl和UINavigationBar。一旦UISegmentedControl獲取其中一個選定的段,我想在UINavigationBar上顯示UIActivityIndicatorView,然後解析一個xml文件並將結果呈現在表中。 除了一件事之外,一切正常,除了一件事情之外,活動指示器視圖在解析器完成後被添加到uinavigationbar,即使在解析器初始化之前將UIIndicatorView添加到UINavigationBar的方法showLoading也會得到。 任何人都可以解釋它嗎?有什麼我可能會失蹤?也許你需要重新繪製UI? 謝謝 彼得添加子視圖,延遲?
0
A
回答
0
它看起來是你在主線程中解析你的xml,所以它變得被UI變化阻塞。嘗試(例如,通過通過-performSelectorInBackground:
調用你的分析方法)
編輯移動XML解析到單獨的線程:其實你(幾乎可以肯定),在應用程序中使用autorelease
含蓄 - 儘可能多的標準函數會返回自動釋放的對象。當你在獨立線程上運行你的函數時,你需要在那裏創建對象來處理自動釋放對象並避免內存泄漏(參見文檔中的Autorelease Pools)。因此,您的parseXML函數必須如下所示:
- (void)parseXML{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
... //xml parsing routines etc
[pool release];
}
相關問題
- 1. 延遲添加視圖
- 2. 子視圖呈現延遲
- 3. 延遲顯示子視圖
- 4. AngularJS延遲視圖加載
- 5. 添加延遲期間添加視圖在Android
- 6. 在懸停延遲中添加延遲
- 7. 添加可延遲事件的延遲
- 8. ExecutorService添加延遲
- 9. 在地圖視圖中延遲加載?
- 10. 在UISlider上添加延時子視圖?
- 11. Android圖庫視圖監聽器添加延遲?
- 12. UScrollView延遲加載卸載視圖
- 13. iOS:UITabBarController - 延遲加載項目視圖
- 14. android圖庫視圖「延遲」與延遲圖像加載適配器
- 15. 添加視圖編程方式與延遲
- 16. 如何從延遲列表中添加視圖到佈局
- 17. 在UIViewController子類中延遲加載視圖
- 18. 將子視圖延遲加載到非分頁UIScrollView
- 19. 在Verilog中添加延遲
- 20. 延遲添加到聲音
- 21. 添加啓動延遲
- 22. 添加延遲 - getJSON和jQuery
- 23. 添加延遲停止()。hide()
- 24. 添加延遲的jQuery
- 25. 添加延遲承諾
- 26. Redis延遲鍵添加
- 27. 給progressbar.js添加延遲?
- 28. 在angularjs中添加延遲
- 29. 添加偏移和延遲
- 30. Javascript延遲圖像加載
嗨! 非常感謝您的回答,但是現在當我嘗試使用performSelectorInBackground解析時,我得到了一堆NSAutoreleaseNoPool錯誤,即使我沒有在應用程序中使用autorelease。 – dusker 2010-03-09 10:24:01
嗨, 實際上出於一些奇怪的原因,這些錯誤也是關於主視圖的一些UI元素(對於我在其他類中調用解析器的引用)。 問候 – dusker 2010-03-09 11:24:18
他們是什麼樣的錯誤?如果解決了活動指標和內存泄漏問題,最好在單獨的問題中詢問它們。 – Vladimir 2010-03-09 11:38:37