当popViewController调用时内存不释放
下面是我有一些疑惑的代码:
MyController *vc= [MyViewController alloc] initWithNibName:@"myController" bundle:nil]; [self.navigationController pushViewController:vc animated:YES]; [vc release];
然后,我通过按导航栏上的后退button来popup我的控制器。
问题是内存第一次增加5MB(在活动监视器)。当我popup控制器它不会被释放。 而当我做一次又一次的push和pop,内存增加了less量,也减less了。
UIView * myView = [UIView alloc] init];
self.vi = MyView的;
[myView发布];
UIScrollView * mySv = [UIScrollView alloc] init];
self.sv = mySv;
[mySvrelease];
UIProgressView * myPv = [UIProgressViewalloc] INIT];
self.pv = myPv;
[myPvrelease];
UIWebView * myWv = [UIWebView alloc] init];
self.wv = myWv;
[myWv发布];
– (void)dealloc {[wv relase];
[sv发布]
[pv发布];
[vi release];
[super dealloc];
}
wv,sv,pv,vi是具有retain属性的MyViewControolervariables。 我编写了这个代码来检查内存pipe理概念,但是现在看到活动监视器和仪器结果,我感到困惑。
我已经validation,没有对象是通过使用仪器在MyController类泄漏。
MyViewController有一个泄漏的内容
它不是内存泄漏。 iOScaching您最近访问过的控制器。 当您的应用程序需要内存来执行一些其他任务时,它将被iOS本身解除分配。
在MyViewController.m文件中试试这个方法
- (void)dealloc { //release any object thats retained into the memory [super dealloc]; }