我使用UIAlertview來輸入一些文本,它工作正常。 但是,在警報視圖關閉後,在警報視圖打開之前(從9MB到26 MB),內存仍有超過17MB的增加。我使用儀器分配來測量堆內存和活動監視器來測量它。他們都顯示了類似的結果。當我切換到其他應用程序時,由alertview增加的內存將降低到適當的水平。這是正常的嗎?我的環境是iPhone4 + iOS6。 這是一些嘗試的代碼。iPhone UIAlertview放棄內存
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"input caption" message:@"text"
delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"OK", nil];
[alert show];
[alert release];
謝謝。
親愛的函數naveed S和呼嚕聲 非常感謝你。 我不確定我是否按照你的建議正確。但是我使用Activity監視器觀看Real mem,在alertview關閉後內存仍然增加大約20 MB。我刪除後[警報顯示] [警報發佈],和我寫
[alert show];
//[alert release];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{ [alertView dismissWithClickedButtonIndex:buttonIndex animated:YES];
[alertView autorelease]; }
Moreovre,內存減少時,應用程序進入後臺模式後,我按HOME。 (這與我以前的代碼相似)。我怎樣才能正確地看到放棄的內存。我甚至不知道如何以正確的方式觀看它.....
順便說一句,我的原始代碼按照這裏的帖子。 Uialertview and memory management
我不認爲你應該看到由於UIAlertView導致的20MB內存浪涌。必須有其他事情發生.... –
我使用樂器活動監視器來查看真實的mem,它顯示9.20 MB之前顯示alertview,但它顯示關閉alertview後26 MB。我繼續這樣做,真正的內存節目穩定地靠近26MB。當我打開safari或按回家時,它顯示11.6MB。我猜iOS會爲alertview或textfield做一些內存緩存(在alertview中有一個文本框)。切換到其他應用程序時,此緩存將減少。總之,我認爲這是不正常的,但我不怎麼解決它。 –
警報關閉時調用哪些代碼? – CodaFi