2011-07-27 170 views
0

我有一個方法如下。我想知道是否返回的字典是autoreleased或不。iPhone內存管理

- (NSDictionary *)someMethod { 
    NSMutableDictionary *myDict = [[NSMutableDictionary alloc] init];   //did not autorelease it here 

    //------------------------------- 
    //Some code 
    //------------------------------- 
    return (NSDictionary *) myDict; 
} 

注意:我沒有在初始化對象時添加autorelease。

回答

0

myDict將被自動釋放。將被保留。替換返回線爲

return [myDict autorelease]; //不需要鑄造

否則,您最有可能引入泄漏。

+0

會自動將NSMutableDictionary類型轉換爲NSDictionary嗎?請參閱方法的返回類型。 – Sahil

+0

NSMutableDictioanry是NSDictionary的一個子類,因此不需要強制轉換。一個NSMutableDictioanry是一個NSDictionary(而不是其他方式)。 – fsaint

0

是你必須做自動釋放不釋放

return [myDict autorelease];