我將一些舊代碼移植到Objective-C ARC(自動引用計數),它似乎工作得很好。除了一個相當大的高級對象,當它從我的導航堆棧彈出時沒有被釋放,使我相信我有一個保留循環,ARC對我隱藏了某處(或者至少很難追蹤到)。什麼是最好的方法來清除這個潛在的保留週期和/或什麼是確定ARC下內存泄漏的原因的好方法?謝謝!ARC圓形保留檢測
10
A
回答
16
最好的方法是使用the Leaks instrument in the Instruments app。
的有什麼新在儀器視頻從WWDC 2011討論了使用儀器找到留住ARC下個週期,在開始約38分鐘。
26
我只是轉變舊的應用程序使用ARC。儀器顯示沒有泄漏,但分配繼續增加。我發現,通過查看活着的物體,我知道應該刪除的東西,我能夠在沒有發佈的情況下追蹤保留物。以下是基本步驟:
- 使用在儀器
- 播放與您的應用程序的分配工具的一段時間(如果你知道是不是被釋放的東西,這正好更快)
- 更改統計到對象在分配跳吧
- 排序分類,並找到自己未發行的對象
- 找到一個活生生的實例的類名,然後點擊旁邊的小右箭頭,內存地址
- 現在你可以看到重新史含有雜質並釋放用於對象
0
相關問題
- 1. OpenCV - 檢測圓形形狀
- 2. 製作圓形大而保留圓形狀(css)
- 3. 圓形物體檢測
- 4. 圓形物體檢測
- 5. 矩形和圓形碰撞檢測
- 6. ARC,塊和保留週期
- 7. iOS ARC塊保留週期
- 8. 在ARC中保留週期
- 9. 強與保留在ARC
- 10. ios ARC力保留NSURL
- 11. dispatch_async和保留(非ARC)
- 12. 用jQuery檢測圓形屏幕?
- 13. 如何檢測圓形手勢方向?
- 14. 檢測圖像中的圓形圖案
- 15. 圓形陣列環路,檢測
- 16. 圓和矩形的碰撞檢測
- 17. 檢測圓形觸摸iPhone的SDK
- 18. 圓矩形碰撞檢測完成exampe
- 19. 簡單的圓形手勢檢測
- 20. 圓檢測
- 21. 橢圓不保留繪製
- 22. 覆蓋保留/釋放在ARC
- 23. iOS的保留與ARC數使
- 24. 保留CTFrameRef屬性使用ARC
- 25. NSAttributedString initWithData:options:documentAttributes:error:documentAttributes不保留在ARC中
- 26. 未保留UITapGesture目標(使用ARC)
- 27. 轉換爲ARC:保留屬性爲unsafe_unretained?
- 28. 使用Arc不保留函數參數?
- 29. ARC試圖保留無效內存
- 30. 檢測向量數組中的圓弧和圓形的範圍
外貌就像我找到它!有一個塊引用是__unsafe_unretained;更改爲__weak __block爲lols,並且似乎已修復它。注:儀器沒有找到這個,並且確實沒有將其標記爲潛在的泄漏情況。無論如何感謝您的建議! – Grimless 2012-02-04 10:07:43
經過一些額外的挖掘後,哎呀,結果泄漏仍然存在。但是,當我將它推到導航堆棧上時,它只會泄漏...如果我使用-init或-initWithNibName:bundle :,然後無參考,它會正確地取消分配。否則,當我將它推入導航堆棧然後彈出時,它不會釋放。 – Grimless 2012-02-04 10:59:44