我創建了一個非常簡單的iPhone應用程序,具有單一視圖和一個帶有動作顯示UIAlertView的UIButton。 我使用下面的代碼UIAlertView內存問題
- (IBAction)showAlert:(id)sender {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Message" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
儀器分配工具截屏附後。
在圖像中,低存儲器分配示出了應用程序正在運行,而不顯示UIAlertView
,和高的峯顯示了內存使用我已經表明UIAlertView
後,即使我已經駁回UIAlertView
並釋放它,但它繼續顯示相同的存儲器狀態和生活對象(高達50,000)。但是當我按回家的按鈕應用程序在後臺進行,你可以看到附加的圖像生活對象和使用的內存減少。
問題:
我的代碼有什麼問題?
爲什麼即使在發佈UIAlertView
後,它顯示高內存分配和活動對象?
爲什麼我必須去背景釋放記憶和活物?
其實我正在其他應用程序,我在做內存優化使用儀器工具,和uialertview相當大增加生活對象,不要減少使用,直到我按主頁按鈕。所以我想解決這個問題。 –
我很好奇,於是寫了一個小測試程序。在我的測試中,只有第一個UIAlertView增加了內存,而沒有增加內存。而增加的只有25萬,所以沒有什麼可擔心的。例如,它可能會緩存UIAlertView的背景圖像。 – fishinear
無論您在應用程序上花費多少時間,首先都會增加,但不會降低。在我的測試應用程序中,在第一次UIAlertView顯示之前生存的字節數爲670KB(8285個活動對象),並且在顯示警報生存字節後爲3.50MB(48,000個活體) –