Ios 调用popViewController时未释放内存
以下是我有一些疑问的代码:-Ios 调用popViewController时未释放内存,ios,memory,Ios,Memory,以下是我有一些疑问的代码:- MyController *vc= [MyViewController alloc] initWithNibName:@"myController" bundle:nil]; [self.navigationController pushViewController:vc animated:YES]; [vc release]; 然后,我按下导航栏上的后退按钮弹
MyController *vc= [MyViewController alloc] initWithNibName:@"myController"
bundle:nil];
[self.navigationController pushViewController:vc animated:YES];
[vc release];
然后,我按下导航栏上的后退按钮弹出控制器
问题是内存第一次增加了5mbOn活动监视器。当我打开控制器时,它没有被释放。
当我一次又一次的推送和弹出时,内存会小幅增加,也会减少
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释放]
-无效解除锁定
{
[wv放松]
[sv发布]
[光伏释放]
[六释放]
[super dealoc]
}
wv、sv、pv、vi是具有retain属性的MyViewControoler变量。
我写这段代码是为了检查内存管理的概念,但是现在看到活动监视器和仪器的结果我感到困惑
我已经通过使用MyController类上的工具验证了MyController类中没有对象泄漏。MyViewController有一个泄漏的内容请在MyViewController.m文件中尝试此方法
- (void)dealloc
{
//release any object thats retained into the memory
[super dealloc];
}
这不是内存泄漏。iOS缓存您最近访问过的控制器。当您的应用程序需要内存来执行某些其他任务时,它将由iOS自行解除分配 您参考的是哪种类型的内容?是的,这是一个漏洞。不,iOS不缓存最近使用的控制器。如果是泄漏,每次都应该增加内存使用量。事实上,我对此也感到困惑,是否是泄漏。请帮助是否有人有apple文档,其中说明apple缓存控制器在我的情况下是导航堆栈我已在dealloc方法中释放了我的所有类变量。