[[UIImage alloc] initWithContentsOfFile:path]
initWithContentsOfFile:この方法は、画像を初期化することができない場合に戻る
戻りnilをnilをパス]メモリ管理。画像は[image release]
ラインでnilであるとし、次のコードは、割り当てられたUIImageを解放されていません。
UIImage* image = [[UIImage alloc] initWithContentsOfFile:path];
if(image)
{
....
}
//Here image is nil and not releases allocated UIImage.
[image release];
は、これは本当にメモリリークですか?
initがnilを返す場合、オブジェクトをどのように解放する必要がありますか? 私が行う場合 UIImage * image = [[UIImage alloc] initWithContentsOfFile:path];
イメージがnilであるため、 [image release]は[nil release]と同じです。さて、エラーはありませんが、何もリリースしていません。
はい、initがnilを返す場合、オブジェクトをどのように解放する必要がありますか? 私が行う場合 UIImage * image = [[UIImage alloc] initWithContentsOfFile:path]; [image release]は[nil release]と同じで、割り当てられたオブジェクトを解放していません –
呼び出しに傷つくことはありませんが、リリースする必要はありませんとにかく画像が常にゼロになるとは限りません。オブジェクトが2つの全く異なるものとしてメモリを占有しているかどうかを判断するには、保持カウントを使用しないでください。これは私があなたが混乱していると思うところです。投稿したリンクをご覧ください。 –