IOS 디자인 모델 중 하나: 단일 모드

3032 단어 디자인 모드
단일 모드 는 하나의 인 스 턴 스 만 있다 는 뜻 이다.단일 모드 는 하나의 인 스 턴 스 만 있 고 자체 적 으로 예화 되 어 전체 시스템 에 이 인 스 턴 스 를 제공 하도록 확보 합 니 다.이런 종 류 를 일례 류 라 고 한다.
#import <Foundation/Foundation.h>

 

 @interface Singleton : NSObject 

 +(Singleton *) instance;
@end @implementation Singleton
+(Singleton *) instance { static Singleton *sharedSingleton_ = nil; @synchronized(self){ if(sharedSingleton_ == nil){ sharedSingleton_ = [NSAllocateObject([self class], 0, NULL) init]; } } return sharedSingleton_; } + (id) allocWithZone:(NSZone *)zone { return [[self sharedInstance] retain]; } - (id) copyWithZone:(NSZone*)zone { return self; } - (id) retain { return self; } - (NSUInteger) retainCount { return NSUIntegerMax; } -(void)release { [super release]; } - (id) autorelease { return self; } @end

 물론 ios 5 이상 에서 ARC 를 사용 하면 훨씬 간단 합 니 다.
static RootViewController* sharedRootController = nil;

 

+(RootViewController *) sharedController{

    @synchronized(self){

        if (sharedRootController == nil) {

           sharedRootController = [[self alloc] init];

        }

    }

    return  singleController;

}

좋은 웹페이지 즐겨찾기