ARC에서 싱글 톤의 공유 인스턴스 접근 자에 dispatch_once를 사용하는 정확한 이유는 무엇입니까?
+ (MyClass *)sharedInstance
{
// Static local predicate must be initialized to 0
static MyClass *sharedInstance = nil;
static dispatch_once_t onceToken = 0;
dispatch_once(&onceToken, ^{
sharedInstance = [[MyClass alloc] init];
// Do any other initialisation stuff here
});
return sharedInstance;
}
백그라운드에서 싱글 톤을 비동기 적으로 인스턴스화하는 것은 나쁜 생각이 아닙니까? 공유 인스턴스를 요청하고 즉시 의존하면 dispatch_once가 크리스마스까지 객체를 만들 때 어떻게됩니까? 바로 돌아 오지 않습니까? 적어도 그것은 그랜드 센트럴 파견의 요점 인 것 같습니다.
그들이 왜 이러는거야?
Note: static and global variables default to zero.