2009-12-19 6 views
1

나는 잠시 동안이 펜스에서 일종의 종류 였지만 Objective-C 클래스 구현 내에서 인스턴스 변수에 직접 액세스하는 것에 대해 사람들이 생각하는 것을 알고 싶습니다.클래스 구현 내에서 직접 Ivars에 액세스해야합니까?

접근 자 및 변형자를 사용하면 많은 일들이 쉬워 지지만 단순한 경우에는 인스턴스 변수에 직접 액세스하는 것이 좋지 않습니까? 개인 인스턴스 변수에 대한 모범 사례가 다른가요?

답변

2

항상 접근 방법을 사용하는 경우, 특히 이러한 방법이 합성되는 경우 메모리 관리가 올바르게 처리된다는 것을 확신 할 수 있습니다. 즉, 기본 유형의 ivars에 액세스하는 것에 대해 이야기하고 있다면 인스턴스 메소드 구현 내에서 직접 사용하는 것이 무엇이든 해를 끼치 지 않습니다.

+1

나는 항상 속성을 사용하는 것에 동의하지 않습니다. 이유는 내 대답을 참조하십시오. – Moszi

1

미안하지만 항상 클래스에서 속성을 사용하여 ivars에 액세스하는 것에 동의하지 않아야합니다. 보통 경우

: 1. 속성이 원자하지 않고, 2. 속성이 복잡한 논리를 가지고 있지 않습니다. (일명 만 합성 속성이 있습니다) - 다음은 속성을 사용 할 필요가 없다. 직접 ivar를 사용하십시오.

속성이 원 자성 인 경우 분명히 getter와 setter를 모두 사용해야합니다. 그러나 항상 setter를 사용하는 것이 매우 편리합니다 ...

+0

귀하의 기여에 감사드립니다! 나는 지난 몇 년 동안 당신의 관점에 기대고있었습니다. 특히 ARC와. –

관련 문제