内存:对象在视图控制器关闭后不会释放,使用ARC

Bor*_*rdz 13 memory-management objective-c viewcontroller ios

我有2个视图控制器,

FirstViewController - > SecondViewController via

[self presentViewController:SVC animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

记忆图

在我做的时候在SecondViewContrller上

[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的问题是,在我关闭这个viewcontroller后,为什么对象不会在secondViewController上释放.正如您在图表中看到的那样,在解雇后它没有下降.BTW有什么最好的方式来释放/解散ViewController?

[编辑]

我在每个VC上使用dealloc方法的NSLog消息,当我从FVC-> SVC开始 - > [关闭SVC]时.这是我的日志

在此输入图像描述

Jul*_*ert 8

这可能是非常粗糙的东西.我以前遇到过类似的问题.搜索您的代码,看看您是否对对象有强烈或错误的引用.

我最大的错误之一(以及我在互联网上看过几百次)是委托属性.我写@property (nonatomic, retain) id<protocol>delegate;了很长时间,因为我意识到,如果我这样做,委托对象不会被释放.assign在这种情况下必须使用.

希望能帮到你......


Sha*_*yaz 0

尝试这个 ...

[self presentViewController:SVC animated:YES completion:nil];

SVC = nil;
Run Code Online (Sandbox Code Playgroud)