我創建了一個示例應用程序,其中我創建了一些繼承自NSObject
類的類,用於定義對象的不同屬性和屬性。現在我有一個子類UIView
,並且能夠在我的iphone屏幕上顯示該對象。如何從屏幕上刪除UIView對象?
現在我遇到了一個問題,每當我想刪除一個三角形時,我通常會打電話給[self removeFromSuperview];
,它會從我的屏幕中刪除視圖。
但它只是從屏幕上刪除視圖不完全刪除對象。
如何完全刪除對象?
我創建了一個示例應用程序,其中我創建了一些繼承自NSObject
類的類,用於定義對象的不同屬性和屬性。現在我有一個子類UIView
,並且能夠在我的iphone屏幕上顯示該對象。如何從屏幕上刪除UIView對象?
現在我遇到了一個問題,每當我想刪除一個三角形時,我通常會打電話給[self removeFromSuperview];
,它會從我的屏幕中刪除視圖。
但它只是從屏幕上刪除視圖不完全刪除對象。
如何完全刪除對象?
從我從你的描述收集 - 怎麼樣:
[self removeFromSuperview];
[self release];
運作的?或者,你應該把這種邏輯放在你的視圖控制器中。然後,就是你有一個參考對象(比如,myObject的),然後使用:
[myObject removeFromSuperview];
[myObject release];
從超級視圖中刪除,並不意味着刪除此對象。您的對象可以非常活躍而無需連接到UIView層次結構。
編輯:(充實彼得迪威斯的評論)
當你創建一個UIView的,你可以這樣做:
MyView* view = [[MyView alloc] initWithFrame:myViewRect];
[mySuperView addChild:view];
[view release];
這意味着你沒有長自己的觀點,但超級觀點並。超級視圖保留了你的視圖,當它作爲一個孩子添加時,你放棄它釋放。後來,當你這樣做:
[self removeFromSuperview];
保留計數將下降到0,您的對象將被自動刪除。
好主意彼得!
發送發佈消息到對象 – iAmitWagh