1
我有一對夫婦在遊戲中用作玩家的HUD。我經常更新這些標籤,以便玩家獲得最新的信息。問題是我一直在使用UILabel在運行時更改,管理更改字符串的內存
uiLabel.text = [NSString stringWithFormat:@"%3.0f", value];
傳遞標籤應該有的新值。不過,我注意到,我在這裏有一些軟內存泄漏。由於我一秒鐘多次執行此更新,並創建了一個設置爲自動釋放的字符串,因此我得到的內存比我需要的要多。保持它,因爲視圖不會消失。
我也試圖alloc和顯式釋放的字符串,如:
NSString* value = [[NSString alloc] initWithFormat: @"%3.0f", value];
uiLabel.text = value;
[value release];
不過,我覺得這似乎導致同樣的事情,但速度更快,雖然我不知道爲什麼。在這種情況下,我會認爲應該永遠不會有等待被釋放的字符串,因爲我明確地解僱了他們。
任何人都可以看到我在這裏做什麼,我顯然沒有看到?有沒有更好的/更喜歡的方式來處理這個問題?一些粗略的搜索對我來說並沒有太大的幫助。
我註釋掉了這些調用(整個HUD刷新,目前這些調用僅構成其中的三個調用),並且字符串停止獲取。 - 運行約5分鐘的應用程序將使我獲益良多。我很樂意附上一個屏幕截圖,如果這可能在stackoverflow(我很新的發佈)。如果有某種信息可以幫助我,請告訴我。 – Kevek 2010-11-10 01:38:37
我跑了一些分析測試,我相信你的回答應該是有道理的,但這絕對不是我所看到的。 – Kevek 2010-11-10 17:52:32