1 min to read
Swift)Singleton(싱글톤)
생성 패턴
싱글톤 패턴이란?
프로젝트 내에 인스턴스가 단 1개인 객체입니다. 인스턴스가 여러개 존재할 때
문제가 발생하는 오디오나 카메라 등에 문제가 생기지 않게 구현하는 방법입니다.
단일 인스턴스를 생성하기 위해 일반적으로 지연로드를 사용합니다.
한 번 생성 후 종료 전까지 메모리에 상주하므로 필요한 경우에만 사용하는 것이 메모리 관리에 좋습니다.
ex) UIApplication, AppDelegate 등
구현조건
1.지정 초기화 메소드를 외부에서 참조하지 못하게 private로 선언합니다.
2.외부에서 초기화할 수 없으므로 내부에서 static 변수로 초기화합니다.
class Singleton {
static let shared = Singleton()
private init() {}
}
@implementation Singleton
+ (id)shared {
static Singleton *shared = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
shared = [[Singleton alloc] init];
});
}
Comments