반응형
출처 : Coacoa Samurai 님 블로그
object-c 제대로 singleton 만드는 방법.
- singleton 을 만들기 위해서는 "보통" 다음과 같이 정의하고 사용한다.
+(MyClass *)singleton {
static MyClass *shared = nil;
if(shared == nil) {
shared = [[MyClass alloc] init];
}
return shared;
}
- 반드시 singleton 을 사용해야 한다면, thread-safe를 위해 dispatch_once() 를 사용하자.
dispatch_once() 는?
1. dispatch_once() 는 application lifecycle 동안 오직 한번만 불리는 것을 보장해준다.
2. 무조건 한번만 불리기 때문에 thread-safe 하다. ( 여러 thread 에서 동시접속하면 먼저 접속한 녀석이 먼저 끝나기를 기다린다. )
+(MyClass *)singleton {
static dispatch_once_t pred;
static MyClass *shared = nil;
dispatch_once(&pred, ^{
shared = [[MyClass alloc] init];
});
return shared;
}
- Singleton 은 가급적이면 피하는 것이 좋지만, 꼭 사용해야 한다면 바로게 사용하자.
도움이 되셨다면 손가락 꾸욱~ ( 로그인 필요 x )
반응형
'프로그래밍 놀이터 > iOS' 카테고리의 다른 글
[ios] UITextField 를 password field 로 만드는 방법. (2) | 2012.11.05 |
---|---|
[ios] objective-c block code 사용하기. (0) | 2012.11.04 |
[ios]objective-c 네트워크 연결 상태 확인하기. (0) | 2012.11.04 |
[ios] object-c 의 기초 개념. (0) | 2012.11.04 |
[ios] object-c category ( categories ) (0) | 2012.11.03 |
댓글