我使用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