2012-11-16 20 views
3

我有內存問題(我正在使用ARC),並且我確信我創建了strong@property某處它應該是weak。我運行的儀器,它顯示我這個分配: enter image description here儀器(分配)並找到哪些對象產生問題

這顯然是一個不釋放的問題。但是我能在樂器中找到它嗎?

編輯:

enter image description here

藍的是我挖掘了很多切換畫面後。

enter image description here

回答

6

切換到Allocations工具中的調用樹視圖可以幫助您找到代碼中分配的位置。使用跳轉欄切換到呼叫樹視圖。

當您切換到調用樹視圖時,您應該在調用樹的左側看到一系列複選框。選擇「反向調用樹」和「隱藏系統庫」複選框可以讓您在調用樹中查找代碼。

您還可以使用檢查範圍按鈕和圖表的時間線來關注內存使用量增加的時間。點擊時間軸,點擊左邊的檢查範圍按鈕,再次點擊時間軸,點擊右邊的檢查範圍按鈕設置檢查範圍。

+0

謝謝。現在我看到了一切。奇怪的是,它只能在模擬器中工作,但對我來說可以。 – Kuba

1

我有記憶的問題(我使用ARC),我敢肯定,我創建了強大的@property的地方,它應該是弱。

儀器能自動檢測其中的一些:

  • 點擊左側
  • 的「泄漏」追蹤點擊顯示彈出窗口並選擇「循環和根源」(這是按鈕標記爲「統計」,在你的屏幕截圖)

之後列表被清空(以及任何/所有泄漏點被刪除),然後攻擊它USI ng Heapshot Analysis。這使您可以專注於一段時間內未發佈的增長。

+0

我沒有泄漏(就像視圖元素中的強屬性)我只是儲存了很多值 - 可能iOS認爲這是可取的操作。我在我的問題中增加了兩個屏幕。 – Kuba

+0

@SimpleMan強大/循環引用被歸類爲泄漏,儘管傳統的內存泄漏掃描沒有報告。這就是參考週期檢測泄漏的原因。我已經添加了一個鏈接,向您介紹Heapshot Analysis。 – justin