2015-08-21 30 views
1

當事情真的很困難時,我想知道爲什麼我的保留計數如此之高,我只需重寫retain/release並調用super,設置一個斷點,然後直觀地看看保留我的對象的內容。類似的方法來覆蓋保留和釋放在Swift 1或2?

我遇到了這種情況,這將大大幫助,但我必須橋接和關閉ARC來做到這一點。

有沒有人發現任何方式在純Swift中做到這一點?我記得不能覆蓋Swift手冊中的功能。

謝謝

+0

[當使用-retainCount?](http://whentouseretaincount.com) – zaph

+0

這很有趣。您還沒有在自己以前沒有編寫過的代碼塊的頂部使用自定義視圖堆棧調試動畫? 我通過學習其他編碼器沒有使用弱塊來覆蓋保留並在幾分鐘內解決了內存泄漏。這是我的「最後的手段」,是的,找到bug的最糟糕的方式,但它是100%準確的,不像回顧所有手冊,保留點和手動搜索。但是,是的,一般來說,這是個好建議,但不適用於混淆代碼,即使通過競賽條件,動畫,循環易於閱讀,等等。一般來說好點Z –

回答

2

如果你需要看到保留,發佈和自動釋放出現一個對象使用的儀器:

運行的儀器,在分配設置「記錄的引用計數」上(你必須停止錄製以設置選項)。導致問題代碼運行,停止錄製,在那裏搜索感興趣的ivar,深入瞭解,您將能夠看到所有保留,發佈和autoreleases發生。

enter image description here

+0

啊,這聽起來像是一個很好的間接方式來完成,沒有啓動/停止的麻煩。尼斯 –

+0

它更好,它顯示autoreleases。 – zaph

+0

不錯。我已經進行了配置,但通常是在沒有特定的保留呼叫的情況下查看泄漏內存 –