[英]Dealloc is not calling immediately after release
I have a root view that loads two view controller. 我有一个加载两个视图控制器的根视图。 eg: FirstVC
, SecondVC
. 例如: FirstVC
, SecondVC
。
I am showing FirstVC
as the root view controller when the app launches, on some action on FirstVC
I load SecondVC
by removing first. 在应用启动时,我将FirstVC
显示为根视图控制器,在FirstVC
上的某些操作上,我SecondVC
删除了SecondVC
来加载SecondVC
。
For loading SecondVC
I first remove FirstVC
by 为了加载SecondVC
我首先通过以下方式删除FirstVC
:
[FirstVCobj.view removeFromSuperView];
[FirstVCobj release];
FirstVCobj = nil;
After that I allocate and create SecondVC
之后,我分配并创建SecondVC
Now only after calling SecondVC
's viewdidload()
is FirstVC
's dealloc()
method called. 现在只能打电话后SecondVC
的viewdidload()
是FirstVC
的dealloc()
调用的方法。 Is this the right execution path, or is it due to some mistake I have made? 这是正确的执行路径,还是由于我犯了一些错误? The above is exactly how I remove and create my view controllers. 以上正是我删除和创建视图控制器的方式。
i assume it is a UIView you're talking about. 我认为这是您正在谈论的UIView。
to 'see' it: wrap it in a pool of your own “看”它:将它包装在自己的水池中
@autoreleasepool {
[FirstVCobj.view removeFromSuperView];
[FirstVCobj release];
FirstVCobj = nil;
}
[FirstVCobj removeFromParentAndCleanup:YES];
检查一下是否可行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.