UIView的removeFromSuperView方法是否从内存中删除了UIView

The*_*ner 16 iphone cocoa cocoa-touch

UIView的removeFromSuperView方法是否从内存中删除了UIView?我只是想确保视图不再使用任何内存?

Vla*_*mir 41

UIView保留其子视图,因此当您调用-removeFromSuperview方法时,您的视图对象将被释放.

因此,如果您的内存管理中的所有其他内容都没有,并且您的视图不会被其他任何内容保留,那么是 - 您的视图应该被释放并从内存中删除.

简单地从超级视图中删除视图的可能示例可能不足以解除分配它可以是具有出口连接的视图和具有retain属性的已声明属性 - 在这种情况下,当从nib文件加载时它由控制器保留并且您可以需要为该案例发布该视图:

[iVarView removeFromSuperview];
self.iVarView = nil;
Run Code Online (Sandbox Code Playgroud)

  • 最大的例外是如果您删除的视图由辅助视图控制器管理,那么该视图控制器还必须释放视图,然后才能从内存中删除它. (3认同)

Adi*_*tya 16

是.一旦调用removeFromSuperView方法,该视图也会从内存中释放出来......

如果你想用Apple的文档确认..这是链接

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html

干杯

  • 这个答案不应该是"最佳答案",因为它不完全正确.这取决于UIView是否已被保留更多.第二个答案更好地解释所有细节! (8认同)