@synthesizeを使用する代わりに@propertyを手動で実装する場合、ARCコードを含める必要がありますか?
このように実装しても大丈夫でしょうか:
@synthesize var1;
- (void)setvar1:(NSObject *)newVar1
{
var1 = newVar1;
}
retain
または、などを含める必要がありますrelease
か?
@synthesizeを使用する代わりに@propertyを手動で実装する場合、ARCコードを含める必要がありますか?
このように実装しても大丈夫でしょうか:
@synthesize var1;
- (void)setvar1:(NSObject *)newVar1
{
var1 = newVar1;
}
retain
または、などを含める必要がありますrelease
か?
retain
ARCでは、手動またはrelease
変数を使用する必要はありません(実際にはできません) 。の大文字のVが必要なことを除けば、あなたの実装はsetVar1:
ARCの下で完全に受け入れられます。
ARCを使用する場合、、、などを手動で使用するコードを記述することはできません。したがって、プロパティのゲッターとセッターを手動で実装することを選択し、ARCを有効にしている場合は、その余分なメモリ管理コードを含める必要はありません。retain
release
「ARCコード」(、など)と呼ばれるものretain
はrelease
、実際には自動ではなく手動の参照カウントです。
ARCを使用せずにコンパイルする場合は、必要にretain
応じてオブジェクトをコピーする必要があります。ARCを使用している場合は、コンパイラが自動的に処理します。具体的には、コンパイラはが宣言されているnewVar1
場合は保持します。var1
__strong