2010-02-12 52 views
0

運行我在儀器下的模擬器程序來檢查內存泄漏,這似乎是在表明這個代碼塊的漏水儀器的內存泄漏工具是否存在'for'循環的問題?

很顯然,在這個循環中,我分配/ init'ing一個對象,但是當我完成它時釋放它。想知道這是否僅僅是樂器如何看待該循環中的活動,或者如果我正在失去理智(或者完全錯誤地做其他事情)的症狀。

回答

2

您正在將您創建的每條訊息儲存到messages ......您確定那個最終不會泄漏(並且因此其中的內容)嗎?或者可能是內存泄漏到你的初始化程序或屬性訪問器中?

+0

」消息「被髮送回這個類的委託並由這個類發佈。它似乎是由該類良好管理的(它的訪問者釋放舊的並保留新的,並在dealloc中釋放它)。 如果消息本身或擁有的消息類被泄漏,我會看到一個MSNutableArray顯示爲泄漏,我不知道? – ChrisW 2010-02-12 18:32:24

+0

魔鬼在細節中。在該委託類(一個UITableViewController子類)中,它創建了一些定製的UITableViewCell子類對象,它們不釋放它們給出的'消息'對象。 欣賞反饋,但是,這就是讓我挖! – ChrisW 2010-02-12 18:45:24

1

泄漏只能說明你在哪裏泄漏的內存被分配...

想想裝置出現泄漏。這意味着在某個地方,你應該有一行代碼發佈了一些東西,但是你沒有這行代碼。泄漏無法向您顯示不存在的代碼!

那麼意思是說,那裏的一個消息對象被保留在其他地方,永遠不會放過 - 或者整個消息數組在某處泄漏,但是那個數組分配也會泄露。 「