2012-08-27 4 views
0

새로운 Xcode가 출시되면 속성이 자동으로 합성되고 실제로는 '_' 접두사를 사용하는 한 합성없이 액세스 할 수 있다고합니다. 그러나 저는 Xcode가 접두어 (여기서 *는 속성의 이름입니다)를 사용하여 다른 방법으로 해당 속성에 액세스 할 수 있음을 알게되었습니다.더 이상 합성하지 않아야합니까?

이 정보가 맞습니까? 그것을 사용해야합니까? 내 코드에 해를 끼칠 수 있습니까?

감사합니다.

+0

정확합니다. 이것은 새로운 컴파일러의 기능입니다. –

+2

왜 새로운가? 속성은 항상 도트 구문을 사용하여 액세스합니다 ... –

+1

잠시 동안 'self.property'를 사용할 수 있습니다 ... – pasawaya

답변

3

_yourProperty으로 인스턴스 변수에 액세스하고 self.yourProperty의 getter/setter를 사용합니다. costumized getter/setter가없는 한 오랫동안 두 getter/setter 모두 성능상의 불이익이 거의 없습니다. 그러나 나중에 코드를 변경할 경우를 대비하여 일반적으로 getter/setter 방법을 사용해야합니다 (getter/setter 자체는 제외).

편집 :

@Vanthel : 밑줄 순수 규칙입니다. @synthesize (또는 @synthesize foo)이 없으면 컴파일러에서 foo 변수 _foo을 생성합니다. 그러나 @synthesize foo = my_bar에 의해 my_bar 변수에 foo의 접근 자에 의해 액세스되도록 지정합니다.

+0

별도의 단락에서 밑줄 접두어 사용을 명확히 할 수 있습니까? – amcc

관련 문제