我有一個控制器類X有IBAction實例方法說dosomething。分配和釋放一個類
我有其他類Y做了一些計算,並委託自己。
在這個方法中,可以創建一個類Y的實例。現在應該在哪裏發佈Y的實例。@property是唯一的解決方案。
//這個動作在類X
- (IBAction爲)DoSomething的:(ID)發送方 {
Y * Y = [[Y的alloc] INIT];
// init方法在Y中實現,執行一些工作以及它的代表時常被調用。如果我們釋放y,則爲 。這將是一場崩潰。那麼發佈y的地方在哪裏。 @property是創建一次性內存並使用它的解決方案。 有沒有什麼辦法可以在這裏發佈,只有當下一次創建其他對象的時候,只有當代表完成一段時間後他們的工作纔會被銷燬//
// [y release];它的崩潰。
}
你好。只有幾個語義問題:一個類只被分配一次,並且它永遠不會「釋放」或以其他方式解除分配,直到Objective-C運行時被取出內存AFAIK。所以,你真正想知道的是**對象的分配和釋放**,而不是**類**。在其他語言中(尤其是那些將類建模爲原型的語言),這種區別並不重要,但在Objective-C中,它非常重要:類也是一個對象,它管理着對象的特徵。 – 2010-12-02 15:43:08
嗨喬納森謝謝。我幾乎沒有懷疑是不是必須的如果類創建了這樣一種方式它有它的對象,並且類說Y本身是其他類的對象,現在有必要釋放類Y.當多個對象在X中被創建和銷燬。 – ashish 2010-12-03 09:24:22