'underbar'에 해당되는 글 1건

  1. 2011.08.29 [iphone] synthesize 에서 "_" 언더바를 쓰는 이유
iPhone App2011.08.29 14:47

synthesize 팁

외부에서 접근하는 프로퍼티 이름과 내부의 변수 이름을 항상 일치시켜야 할까 ? 그렇지는 않다. 많은 개발자가 다음과 같은 기법을 사용한다.

01: // 헤더

02: @interface AccessorTest2 : NSObject {

03: BOOL _enable;

04: }

05: @property (readwrite,assign) BOOL enable;

06: @end

07:

08: // 구현

09: @implementation AccessorTest2

10:

11: @synthesize enable = _enable;

12:

13: @end

즉 실제 내부 변수를 언더바(_) 문자로 시작하게 선언한다. 그리고 외부에서 접근할 때는 언더바를 제거한 문자로 접근하도록 하는 것이다. 이렇게 해서 내부에서 접근할 때와 외부에서 접근할 때의 차이를 쉽게 구분하도록 한다.

self.enable = YES; // 접근자를 통한 설정

_enable = YES; // 객체 내부에서 접근

위 코드와 같이 접근자로 접근하는 것과 내부에서 접근하는 경우를 확연히 구분할 수 있다. 이 때 synthesize 에 = 가 사용된 것은 enable 이라는 프로퍼티가 _enable 이라는 멤버 변수를 사용한다는 것을 알리기 위한것이다.

출처 : http://blog.messfilm.com/?p=84

외부와 내부에서 접근할때를 구분은 왜 하는것일까? 사실 c#때도 private와 public를 사용해서 좀더 캡슐화에 가깝게 객체지향적으로 짠다.

이것도 그런것일까... 근데 이건 public은 원래 있는것이고 추가적으로 private를 더 만드는것이라 좀 애매하다. 아직 갈길이 멀구나.

Posted by 동동(이재동)