2012-02-10 23 views
0

可能重複:
Why shouldn’t I use the getter to release a property in objective-c?自我的使用與ALLOC一個實例,並釋放

我在頁頭有點困惑,並具有自我釋放。看了幾篇文章和教程後,似乎需要更多的建議。以下是問題列表:

  1. 這是一種正確的分配和釋放方式。 self.selectPopover = [[UIPopoverController alloc] init];

[self.selectPopover release];

  1. 嘗試從另一個類執行此代碼。 classArr在ObjClass中定義。當我分析這個代碼潛在的泄漏「調用者此時不擁有的對象的引用計數的錯誤遞減」出現時。

ObjClass.classArr = [[NSMutableArray裏的alloc] INIT];

[ObjClass.classArr release];

所以任何人都可以清除我對此的疑惑。提前致謝。

回答

0

我假設你已經創建了財產retain
當你
ObjClass.classArr = [[NSMutableArray alloc] init];
此時由於alloc以及通過retain 類型的屬性分配,retainCount變爲兩個,一個,當你[ObjClass.classArr release];在這個時候,你發送一個版本和reatinCount從2
成爲1因此,無論你喜歡這款

ObjClass.classArr = [[NSMutableArray alloc]init]; 
[ObjClass.classArr release]; 

這使得其保留計數一個
或者,你可以這樣做實際情況是這樣的

classArr = [[NSMutableArray alloc] init]; 

指定ivar沒有財產,使得retainCount一個。

相關問題