Objective-C에서 Singleton객체 만들기

Objective-C에서 Singleton 객체를 만드는방법은 다음과 같습니다.

//  SingletonClass.h

#import <Foundation/Foundation.h>

@interface SingletonClass : NSObject
{
}

+ (SingletonClass *)sharedSingletonClass;

@end


//  SingletonClass.m

#import "SingletonClass.h"

@implementation SingletonClass

+ (SingletonClass *)sharedSingletonClass
{
    static SingletonClass *singletonClass = nil;
    
    if(singletonClass == nil)
    {
        @synchronized(self)
        {
            if(singletonClass == nil)
            {
                singletonClass = [[self alloc] init];
            }
        }
    }
        
    return singletonClass;
}

@end


여기선 DCL(double-checked locking)을 사용하였는데, Objective-C에서도 최적화 과정에서 비교 구문의 instruction의 위치가 바뀐다면.. 엄밀히 말하면 100% 안전한 코드는 아니되겠습니다.


사용 방법은

SingletonClass *s = [SingletonClass sharedSingletonClass];


와 같이 하시면 됩니다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2009/03/31 13:04 2009/03/31 13:04
,
Response
No Trackback , 8 Comments
RSS :
http://b4you.net/blog/rss/response/210

Trackback URL : http://b4you.net/blog/trackback/210

« Previous : 1 : ... 46 : 47 : 48 : 49 : 50 : 51 : 52 : 53 : 54 : ... 246 : Next »

블로그 이미지

빗소리를 먹는 사람.

- 장현준

Notices

Archives

Authors

  1. 장현준

Recent Trackbacks

Calendar

«   2017/12   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Site Stats

Total hits:
2084532
Today:
4376
Yesterday:
5115