3

@synthesizeを使用する代わりに@propertyを手動で実装する場合、ARCコードを含める必要がありますか?

このように実装しても大丈夫でしょうか:

@synthesize var1;

- (void)setvar1:(NSObject *)newVar1
{
    var1 = newVar1;
}

retainまたは、などを含める必要がありますreleaseか?

4

3 に答える 3

2

retainARCでは、手動またはrelease変数を使用する必要はありません(実際にはできません) 。の大文字のVが必要なことを除けば、あなたの実装はsetVar1:ARCの下で完全に受け入れられます。

于 2012-10-19T02:31:55.230 に答える
1

ARCを使用する場合、、、などを手動で使用するコードを記述することはできません。したがって、プロパティのゲッターとセッターを手動で実装することを選択し、ARCを有効にしている場合は、その余分なメモリ管理コードを含める必要はありません。retainrelease

于 2012-10-19T02:32:11.890 に答える
1

「ARCコード」(、など)と呼ばれるものretainrelease、実際には自動ではなく手動の参照カウントです。

ARCを使用せずにコンパイルする場合は、必要にretain応じてオブジェクトをコピーする必要があります。ARCを使用している場合は、コンパイラが自動的に処理します。具体的には、コンパイラはが宣言されているnewVar1場合は保持します。var1__strong

于 2012-10-19T02:36:14.413 に答える