2016-11-17 11 views
-2

私は単純なObj-cアプリケーションを書いています。これまでのところ私は決してallocにしていたことはありませんでした。私は、ARCがメモリ管理を担当することを当然認めました。NSImageを解除する必要がありますか?

しかし、今私が呼び出す必要があります:

NSImage *myImage = [[NSImage alloc] initByReferencingFile: pathToMyImg]; 

を私はmyImageべきI手動deallocそれで終わりだ後は?

+1

あなたがARCを使用している場合、それを使用していないときに自動的に割り当てが解除されます – Alex

答えて

1

Objective-C ARCを使用している場合(デフォルトであり、とにかく)、factory methodスタイルインスタンシエーションと[[NSImage alloc] init]スタイルインスタンシエーションの間に必要なメモリ管理に違いはありません。最後に強い参照がスコープから外れたとき(または参照の最後の強い参照がスコープから外れるとき)には、作成したすべてが自動的に解放されます。

ARCを使用していない場合は、完了したら手動で[myImage release]を実行する必要がありますが、古いプロジェクトのコードを記述していない限り、そうでない理由はありません。

0

myImageで完了した後は、手動でdeallocを入力する必要がありますか?

質問は意味をなさない。あなたはARCを使用しています。答えは「はい」とします。どうしますか?それはいけません。 ARCはNSObjectのメモリ管理コマンドを与えることはできません。

したがって答えはいいえである必要があります

関連する問題