私は単純なObj-cアプリケーションを書いています。これまでのところ私は決してalloc
にしていたことはありませんでした。私は、ARCがメモリ管理を担当することを当然認めました。NSImageを解除する必要がありますか?
しかし、今私が呼び出す必要があります:
NSImage *myImage = [[NSImage alloc] initByReferencingFile: pathToMyImg];
を私はmyImage
べきI手動dealloc
それで終わりだ後は?
私は単純なObj-cアプリケーションを書いています。これまでのところ私は決してalloc
にしていたことはありませんでした。私は、ARCがメモリ管理を担当することを当然認めました。NSImageを解除する必要がありますか?
しかし、今私が呼び出す必要があります:
NSImage *myImage = [[NSImage alloc] initByReferencingFile: pathToMyImg];
を私はmyImage
べきI手動dealloc
それで終わりだ後は?
Objective-C ARCを使用している場合(デフォルトであり、とにかく)、factory methodスタイルインスタンシエーションと[[NSImage alloc] init]
スタイルインスタンシエーションの間に必要なメモリ管理に違いはありません。最後に強い参照がスコープから外れたとき(または参照の最後の強い参照がスコープから外れるとき)には、作成したすべてが自動的に解放されます。
ARCを使用していない場合は、完了したら手動で[myImage release]
を実行する必要がありますが、古いプロジェクトのコードを記述していない限り、そうでない理由はありません。
myImage
で完了した後は、手動でdealloc
を入力する必要がありますか?
質問は意味をなさない。あなたはARCを使用しています。答えは「はい」とします。どうしますか?それはいけません。 ARCはNSObjectのメモリ管理コマンドを与えることはできません。
したがって答えはいいえである必要があります
あなたがARCを使用している場合、それを使用していないときに自動的に割り当てが解除されます – Alex