UIView删除自己?

时间:2012-05-26 05:36:24

标签: iphone objective-c ios cocoa-touch uiview

我有一个名为UIView的{​​{1}}子类,它的行为类似于一个浮动窗口,并且ToolbarView有一个“X”按钮,可以使窗口消失。我的问题是,对象是否有可能从自己的类中删除自己?

例如,在UIToolbar中,我有一个方法ToolbarView.m,当按下X按钮时会触发该方法。从closeButtonPushed移除视图,然后调用superview是否一样简单?甚至有必要调用dealloc,因为一旦从dealloc删除它就不会有任何其他指针。或者是这种糟糕的记忆练习?

2 个答案:

答案 0 :(得分:4)

是的,不要永远打电话给dealloc。如果superview是唯一具有对视图的引用的对象,则删除视图将使其保留计数变为0,然后运行时将为您释放该对象。

答案 1 :(得分:0)

您需要做的是closeButtonPushed方法是,致电

 [self removeFromSuperView];

它将删除ToolbarView对象,IOS将调用dealloc方法并释放对象。无需手动拨打dealloc