0

싱글 톤을 만들고 싶습니다. 사용하고자하는 것이 확실하지 않습니다 : dispatch_once 또는 @syncronized.GCD dispatc_once 및 ARC를 사용하여 싱글 톤 만들기

내 질문은 : 하나의보기 컨트롤러에서 싱글 톤 개체 (GCD 사용)를 만든 다음 다른보기 컨트롤러로 이동하면 ARC가 내 Singleton 개체를 파괴할까요? 다른 뷰 컨트롤러에서 다시 필요하면 다시 만들 수 있습니까?

답변

0

올바르게 만들면 아무도 앱을 죽이는 것을 제외하고 누구도 파괴하지 않습니다. 이러한 이유로 싱글 톤은 매우 구체적인 작업에만 사용해야합니다.
이 내가 ARC를 사용하여 싱글 톤을 만드는 방법입니다, 그것은 동일한 개체

항상 반환됩니다 것을 보장합니다 클래스의 클래스 메소드

+ (instancetype)sharedInstance 
{ 
    static dispatch_once_t pred = 0; 
    __strong static id _sharedObject = nil; 
    dispatch_once(&pred, ^{ 
     _sharedObject = [[self alloc] init]; 
    }); 
    return _sharedObject; 
} 

콜링 + sharedInstance입니다