2012-05-15 3 views
3

"assign"이 기본값 인 경우 비워두면 할당 할 수 있습니까?@property assign

@property BOOL sample; 

내가 원 자성을 정의한 다음 비워두면 어떻겠습니까?

@property (nonatomic) BOOL sample; 
+1

XCode 4.3에서 {strong}이 기본값이며 ARC 일관성을 위해 변경되었습니다. 여기를 참조하십시오 http://stackoverflow.com/questions/9773604/property-definitions-with-arc-is-strong-default-now – Justin

+0

하지만 내 프리미티브에 "강하게"주는거야? 그건 불가능하다. –

+1

소유권 소스없이 합성 된 보유 객체 포인터 유형의 특성은 이미있는 경우 연관된 인스턴스 변수의 소유권을 갖습니다. 그렇지 않으면 [Apple 3.1, LLVM 3.1]의 소유권은 암시 적으로 강합니다. 이 개정 전에는 그러한 재산을 종합하기에 부적절했습니다. – Justin

답변

6

예, 별도로 지정하지 않으면 기본값이 사용됩니다. 그러나 속성 정의를 명시 적으로 지정하는 것이 좋습니다. 제 3자가 무슨 일이 일어나고 있는지, 그리고/또는 어떤 일이 일어나야 하는지를 이해하는 것이 더 쉽습니다. 또한 구현 세부 사항은 앞으로 변경 될 수 있습니다.

+0

XCode 4.3에서는 {strong} 속성의 기본값입니다. – Justin

3

예, 당신은 맞다 :

@property BOOL sample; 

이하는 것과 동일합니다 :

@property (atomic, assign) BOOL sample; 

그러나 물론, 원자 그렇게 사용하지 마십시오 :

를 존재하는 속성 아니다