2012-10-19 3 views
3

@synthesize 대신 @property를 수동으로 구현할 때 ARC 코드를 포함해야합니까?@property 수동 구현

@synthesize var1; 

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

을하거나 retain, release 등을 포함해야합니까 :

는 다음과 같이 그것을 구현하는 것이 괜찮을까요?

답변

2

ARC에서는 수동으로 retain 또는 release 개의 변수를 수동으로 설정할 필요가 없습니다. setVar1:에 대문자 V가 필요하다는 것을 제외하고 구현은 ARC에서 완벽하게 허용됩니다.

1

은 수동으로 retain, release 등을 사용하는 코드를 작성할 수 없습니다. 따라서 속성 getter 및 setter를 수동으로 구현하도록 선택하고 ARC를 사용하도록 설정 한 경우 추가 메모리 관리 코드를 포함 할 필요가 없습니다.

1

"ARC 코드"(retain, release 등)는 실제로 자동으로 참조하는 것이 아니라 수동으로 참조하는 것입니다.

ARC없이 컴파일하는 경우 retain이 필요하거나 필요에 따라 개체를 복사해야합니다. ARC 아래에 있다면, 컴파일러가 당신을 위해 그것을 돌볼 것입니다. 특히 var1__strong으로 선언되면 컴파일러는 newVar1을 유지합니다.