Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 调用popViewController时未释放内存_Ios_Memory - Fatal编程技术网

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方法中释放了我的所有类变量。