@synthesize 대신 @property를 수동으로 구현할 때 ARC 코드를 포함해야합니까?@property 수동 구현
@synthesize var1;
- (void)setvar1:(NSObject *)newVar1
{
var1 = newVar1;
}
을하거나 retain
, release
등을 포함해야합니까 :
는 다음과 같이 그것을 구현하는 것이 괜찮을까요?
@synthesize 대신 @property를 수동으로 구현할 때 ARC 코드를 포함해야합니까?@property 수동 구현
@synthesize var1;
- (void)setvar1:(NSObject *)newVar1
{
var1 = newVar1;
}
을하거나 retain
, release
등을 포함해야합니까 :
는 다음과 같이 그것을 구현하는 것이 괜찮을까요?
ARC에서는 수동으로 retain
또는 release
개의 변수를 수동으로 설정할 필요가 없습니다. setVar1:
에 대문자 V가 필요하다는 것을 제외하고 구현은 ARC에서 완벽하게 허용됩니다.
은은 수동으로 retain
, release
등을 사용하는 코드를 작성할 수 없습니다. 따라서 속성 getter 및 setter를 수동으로 구현하도록 선택하고 ARC를 사용하도록 설정 한 경우 추가 메모리 관리 코드를 포함 할 필요가 없습니다.
"ARC 코드"(retain
, release
등)는 실제로 자동으로 참조하는 것이 아니라 수동으로 참조하는 것입니다.
ARC없이 컴파일하는 경우 retain
이 필요하거나 필요에 따라 개체를 복사해야합니다. ARC 아래에 있다면, 컴파일러가 당신을 위해 그것을 돌볼 것입니다. 특히 var1
이 __strong
으로 선언되면 컴파일러는 newVar1
을 유지합니다.