我有一个视图控制器谁从nib文件加载了视图。 nib文件包含主视图,其中包含滚动视图作为其子视图。在视图控制器的viewDidLoad方法中,滚动视图的保留计数为2(创建时为1,因为我保留了1)。当调用视图控制器的dealloc方法时,我释放了滚动视图,但它的保留计数只减少到1,这是有意义的,因为它在开始时为2。
基于上面的场景,我的问题是:在dealloc方法返回后滚动视图是否完全释放,因为然后主视图被释放,强制所有子视图(例如滚动视图),被删除/释放?或者,此版本是否会在不同的时间点发生?
谢谢!
编辑:如果在我发布滚动视图后,我将其设置为nil(保留计数仍为1),滚动视图是否会完全释放?
答案 0 :(得分:0)
它由位于其中的超级视图保留,当超级视图消失时,它将获得另一个释放(如果保留计数变为零则如此dealloc'd)。如果你很好奇,你可以继承UIScrollView,并在dealloc函数中放置一个NSLog或断点来确定。或者,使用泄漏仪器运行并查看它是否显示为泄漏。
答案 1 :(得分:0)
是的,当你最后致电[super dealloc]
时。