1

我有一个UIView子类ToolbarView,它的作用类似于浮动窗口,并且有UIToolbar一个“X”按钮,可以使窗口消失。我的问题是,对象是否可以从自己的类中删除自己?

例如,在 内ToolbarView.m,我有一个closeButtonPushed在按下 X 按钮时触发的方法。是否像从其中删除视图superview然后调用一样简单dealloc?是否有必要调用dealloc,因为一旦将其从其中删除,superview就不会有任何其他指针指向它。或者这是不好的记忆习惯?

4

2 回答 2

4

是的,永远不要调用 dealloc。如果超级视图是唯一引用您的视图的对象,则删除该视图将导致其保留计数变为 0,然后运行时将为您解除分配该对象。

于 2012-05-26T05:39:48.137 回答
0

你要做的是在closeButtonPushed方法中,调用

 [self removeFromSuperView];

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

于 2012-05-26T05:47:03.630 回答