Ios 何时删除swift中的对象?

Ios 何时删除swift中的对象?,ios,swift,object,Ios,Swift,Object,我是一个新的快速学习者。现在我真的对Swift对象的释放感到困惑。例如,我在viewDidload方法中创建了一个UIView对象,并将其添加到主视图中。我认为我创建的视图应该在调用viewDidload方法后直接销毁,因为它是一个局部变量 但我仍然可以在屏幕上看到这个视图,这让我非常困惑。有人能帮我吗?多谢各位 使用引用控制对象生存期。如果将该视图添加到另一个视图中,该视图仍将作为子视图被该视图引用 从视图中删除该子视图(例如someView.removeFromSuperView)将删除该引

我是一个新的快速学习者。现在我真的对Swift对象的释放感到困惑。例如,我在viewDidload方法中创建了一个UIView对象,并将其添加到主视图中。我认为我创建的视图应该在调用viewDidload方法后直接销毁,因为它是一个局部变量


但我仍然可以在屏幕上看到这个视图,这让我非常困惑。有人能帮我吗?多谢各位

使用引用控制对象生存期。如果将该视图添加到另一个视图中,该视图仍将作为子视图被该视图引用

从视图中删除该子视图(例如someView.removeFromSuperView)将删除该引用,尽管您需要原始引用才能执行此操作:/


为什么您希望视图被销毁,但仍然可见?

当您将视图添加到主视图时,幕后发生的事情是主视图通过您对视图的强烈引用而获得了视图的“所有权”。这就是为什么它仍然显示在屏幕上,并且没有被释放

查看Swift文档中的本指南,了解有关ARC的更多信息


您已将视图添加到视图控制器的视图中,因此它的保留计数为1,大于0,因此不会释放此对象。如果您不手动从superview中删除视图,它将在superview解除分配期间解除分配。

…我仍然可以在屏幕上看到此视图,请显示您的代码。我的意思是,此视图肯定仍在屏幕上,因此它使我感到困惑。但是现在我通过阅读一些关于ARC的文章来更好地理解它。嗨,你帮了我很多。非常感谢。