ios – 推送viewcontroller这是一个实例变量,d出时不会调用dealloc方法

ios – 推送viewcontroller这是一个实例变量,d出时不会调用dealloc方法,第1张

概述我有一个AViewController,如果我创建BViewController作为这样的实例变量 @interface AViewController (){ BViewController *bVC;}@end 然后推 - (void)push { bVC = [[BViewController alloc] init]; [self.navigationCont 我有一个AVIEwController,如果我创建BVIEwController作为这样的实例变量

@interface AVIEwController (){    BVIEwController *bVC;}@end

然后推

- (voID)push {    bVC = [[BVIEwController alloc] init];    [self.navigationController pushVIEwController:bVC animated:YES];}

d出BVIEwController时不会调用Dealloc方法.

两个视图控制器几乎都是空的,我的意思是没有NSTimers,块或网络请求.
我想AVIEwController中存在一个强引用循环,但无法弄清楚循环.

所以,有人可以帮我解决这个问题,谢谢!

解决方法 这是基本的存储器管理101.

只有在没有对该对象的强引用之后才会释放对象.

您的ivar bVC强烈引用了视图控制器.推动它增加另一个.然后你d出它,它回到bVC的一个强引用.所以它没有被解除分配.

您可以避开ivar或在某些时候将其设置为nil,以便可以取消分配视图控制器.

总结

以上是内存溢出为你收集整理的ios – 推送viewcontroller这是一个实例变量,d出时不会调用dealloc方法全部内容,希望文章能够帮你解决ios – 推送viewcontroller这是一个实例变量,d出时不会调用dealloc方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1046799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存