[[UIImage alloc] initWithContentsOfFile:path]
initWithContentsOfFile:路徑]存儲器管理時返回nil
返回零當該方法無法初始化圖像。然後,接下來的代碼不釋放所分配的UIImage,因爲圖像是零的[image release]
行:
UIImage* image = [[UIImage alloc] initWithContentsOfFile:path];
if(image)
{
....
}
//Here image is nil and not releases allocated UIImage.
[image release];
這真的是內存泄漏?
如果init返回nil,如何釋放該對象?如果我做了
和圖像是零,因爲初始化失敗, [image release]與[nil release]相同。好吧,沒有錯誤,但沒有釋放任何東西。
是的但如果init返回nil,如何釋放該對象?如果我做了 和圖像爲零, [image release]與[nil release]相同,並且不釋放分配的對象 –
您不需要釋放它,因爲它是零,但它不會傷害呼叫'[image release]'無論如何,因爲圖像可能並不總是零。請不要使用保留計數來確定一個對象是否將內存視爲兩個完全不同的東西;這是我認爲你感到困惑的地方。請參閱我發佈的鏈接。 –