2011-07-21 71 views
3

檢查方法如下:我們何時應該釋放一個對象,如果我們返回它?

-(NSMutableArray*)provideRequestArray{ 
    NSMutableArray* requestArray=[[NSMutableArray alloc] initWithObjects:@"MyString",nil]; 
    return requestArray; 
} 

現在,當應requestArray被釋放,因此不會產生任何後果。

+0

爲什麼你返回一個數組,當你的方法名稱暗示你得到一個字符串? – Pierre

+0

啊..因爲我一直在處理字符串,最初.. – rptwsthi

回答

5

返回該對象發送autorelease消息。

// initWithFormat: ?? 
NSMutableArray* requestArray=[[NSMutableArray alloc] 
           initWithFormat:@"MyString"]; 
return [requestArray autorelease]; 

或獲得一個自動釋放一個(例如用array類方法):

NSMutableArray* requestArray= [NSMutableArray array]; 
return requestArray; 

退房的文檔here

+0

那麼如果我讓對象自動解除? – rptwsthi

+0

autorelease對象將在稍後發佈。所以發送者可能會「保留」那個對象。 – 2011-07-21 06:31:38

+0

我們可以使用'return [classObject autorelease];'? – rptwsthi

相關問題