새로운 Xcode가 출시되면 속성이 자동으로 합성되고 실제로는 '_'
접두사를 사용하는 한 합성없이 액세스 할 수 있다고합니다. 그러나 저는 Xcode가 접두어 (여기서 *는 속성의 이름입니다)를 사용하여 다른 방법으로 해당 속성에 액세스 할 수 있음을 알게되었습니다.더 이상 합성하지 않아야합니까?
이 정보가 맞습니까? 그것을 사용해야합니까? 내 코드에 해를 끼칠 수 있습니까?
감사합니다.
새로운 Xcode가 출시되면 속성이 자동으로 합성되고 실제로는 '_'
접두사를 사용하는 한 합성없이 액세스 할 수 있다고합니다. 그러나 저는 Xcode가 접두어 (여기서 *는 속성의 이름입니다)를 사용하여 다른 방법으로 해당 속성에 액세스 할 수 있음을 알게되었습니다.더 이상 합성하지 않아야합니까?
이 정보가 맞습니까? 그것을 사용해야합니까? 내 코드에 해를 끼칠 수 있습니까?
감사합니다.
_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
의 접근 자에 의해 액세스되도록 지정합니다.
별도의 단락에서 밑줄 접두어 사용을 명확히 할 수 있습니까? – amcc
정확합니다. 이것은 새로운 컴파일러의 기능입니다. –
왜 새로운가? 속성은 항상 도트 구문을 사용하여 액세스합니다 ... –
잠시 동안 'self.property'를 사용할 수 있습니다 ... – pasawaya