Objective-C 에서 Private Property 만들기

Objective-C에서는 property라는 기능으로 instance variable들에 대해 accessor를 자동으로 설정해 줄 수 있다.


#import
#import "CalculatorBrain.h"

@interface CalculatorViewController : UIViewController {
CalculatorBrain *brain;
IBOutlet UILabel *display;
BOOL userIsInTheMiddleOfTypingANumber;
}

- (IBAction)digitPressed:(UIButton *)sender;
- (IBAction)operationPressed:(UIButton *)sender;

 

@end

위의 헤더 코드(xxx.h)에서 brain이라는 instance variable을 property로 설정해 주기 위해서 구현 코드(xxx.m)의 @implementation부분 전에 @interface 클래스이름()을 써주고 @property 를 이용해 원하는 변수를 private property화 할 수 있다. 예를 들면 다음과 같다.


#import "CalculatorViewController.h"

@interface CalculatorViewController()
@property (readonly) CalculatorBrain *brain;
@end

@implementation CalculatorViewController
...

일반적으로 property와 synthesize를 통해 getter와 setter를 만들어 주는 일은 당연히 public하게 만들어지지만, (애초에 OOP에서 getter와 setter를 만들어주는 이유가 접근할 수 없는 private인 instance variable를 안전하게 이용하게 할 수 있도록 통로를 제공하는 것임) 정말 외부로부터 접근을 막아야 하는 instance variable이지만 property의 장점(.(dot) 표기법)을 누리고 싶을때 사용할 수 있겠다.

댓글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. Log Out / 변경 )

Twitter picture

Twitter의 계정을 사용하여 댓글을 남깁니다. Log Out / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. Log Out / 변경 )

%s에 연결하는 중

팔로우

Get every new post delivered to your Inbox.