2

私は新しい iOS 開発者です。deallociOS 6でもプロパティをリリースする必要がありますか?

そうでない場合、保持されたプロパティはどのように解放されますか? それは自動的に行われますか?

これに関するガイダンスが必要です。これがばかげた質問である場合は申し訳ありません..

たとえば、これを行うと:

- (void)dealloc
{
    [super dealloc];
}
@end

次のようなメッセージが表示されます。

ARC forbids explicit message send of 'dealloc'
4

2 に答える 2

5

答えはイエスです。参照カウント メモリ管理はまだ使用されており、メソッドretainreleaseautoreleaseおよびdeallocはまだ使用されています。

質問する必要があるのは、「それらを使用する必要がありますか?」ということです。

その答えは、ARC が有効になっているかどうかによって異なります。ARC は Automatic Reference Counting の略で、iOS 5 以降の新しい iOS プロジェクトではデフォルトで有効になっています。ARC は LLVM コンパイラの機能であり、よく知られている cococa プログラミング規則に基づいて、必要な保持/解放/自動解放メソッド呼び出しをコードに自動的に追加します。 .

コンパイラが「ARC は明示的なメッセージを禁止する.. など」と言う理由は、コンパイラがそれらの呼び出しを管理しているためです。ARC はすべてのメモリ管理を管理するか、まったく管理しません。

ARC は、プロジェクトごと、またはファイルごとに有効または無効にすることができます。ARC 対応コードは、非 ARC 対応コードと互換性があります。

ARC の機能を知りたい場合は、 Transitioning to ARC Release Notesを読むことをお勧めします。

次に、 developer.apple.com /videos にある自動参照カウント ビデオをすべて見ます。

最後に、準備ができている場合は、ARC に関する公式の LLVM ドキュメントを読んでください。

于 2012-10-30T05:58:16.987 に答える
1

ARC を使用している場合は、コンパイラがこれらすべてを実行します。

参考までに: http://developer.apple.com/library/mac/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html

于 2012-10-30T05:48:46.553 に答える