我有一个名为UIView
的{{1}}子类,它的行为类似于一个浮动窗口,并且ToolbarView
有一个“X”按钮,可以使窗口消失。我的问题是,对象是否有可能从自己的类中删除自己?
例如,在UIToolbar
中,我有一个方法ToolbarView.m
,当按下X按钮时会触发该方法。从closeButtonPushed
移除视图,然后调用superview
是否一样简单?甚至有必要调用dealloc
,因为一旦从dealloc
删除它就不会有任何其他指针。或者是这种糟糕的记忆练习?
答案 0 :(得分:4)
是的,不要永远打电话给dealloc。如果superview是唯一具有对视图的引用的对象,则删除视图将使其保留计数变为0,然后运行时将为您释放该对象。
答案 1 :(得分:0)
您需要做的是closeButtonPushed
方法是,致电
[self removeFromSuperView];
它将删除ToolbarView
对象,IOS将调用dealloc
方法并释放对象。无需手动拨打dealloc
。