[ios/design pattern] private 메서드 정의하기
-
Objective-C 은 public/private 같은 접근제어하는 것이 없음.
다시 이야기하자면 모든 method 가 사실 public 이다.
-
.m 파일의 implemetation 에서만 함수를 정의해서 사용하는 것은 private 으로 여길 수 있겠지만,
.h 에 선언되어 있지 않기 때문에 warning 이 표시된다. ( 실제로는 option 에 따라 warning 이 표시 안 되기도 )
( iOS 는 동적 언어라 compile 은 되고 실행도 되긴 한다. )
-
이를 해결하기 위해서는 Private 전용 Category 를 만들고,
모든 private method 에는 p_ 접두어를 붙이는 것으로 해결할 수 있다.
// .m 파일
@interface ClassName(Private)
- (void)p_privateMethod;
@end
@implementation ClassName(Private)
-(void)p_privateMethod{
// do something
}
@end
@implementation ClassName
// do something
@end
-
Category 를 따로 만들기 싫다면, Category Class Extension 을 사용할 수도 있다.
@interface ClassName()
-(void)p_privateMethod;
@end
@implementation ClassName
// do something
-(void)p_privateMethod{
// do something
}
@end
'프로그래밍 놀이터 > iOS' 카테고리의 다른 글
[ios] String Concat ( String 연결하기 ) (0) | 2017.10.25 |
---|---|
[ios] GCD ( Grand Central Dispatch ) Tutorial (0) | 2017.10.24 |
[Effective Objective-C] 총 정리 (0) | 2017.10.22 |
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #49~#52 (0) | 2017.10.21 |
[Effective Objective-C] #52 NSTimer 가 타깃을 리테인한다는 사실을 기억하라 (0) | 2017.10.20 |
댓글