본문 바로가기

OBJECTIVE-C

Singleton Class 싱글톤 메소드 설정 방법



.m 파일에 아래 메소드를 추가해준다. 
+ (HYCommon *)sharedCommon{

    // static 변수는 선언되면 이후 메소드가 호출되어도 다시 nil 세팅되지 않는다.

    // , 불려지면 메모리상에 계속 남아 해제할 때까지 남아있는다.

    static HYCommon *sharedInstance = nil;

    

    // sharedInstance static 변수이기 때문에 sharedInstance nil이라는 뜻은 메소드가 처음 호출되었음을 의미한다.

    if (sharedInstance == nil) {

        @synchronized(self){

            if (sharedInstance == nil) {

                //처음 호출되었기 때문에 메모리에 생성해준다.

                sharedInstance = [[HYCommon alloc]init];

            }

        }

    }

    //처음 호출된 것이 아니라면 메모리에 있는 sharedInstance 반환 준다.

    return sharedInstance;

}

.h 에도 선언해준다. 

+ (HYCommon *)sharedCommon;


사용할땐 아래와 같이 사용한다. 

[[HYCommon sharedCommon] 변수 or 메소드]