iOS의 싱글 톤 객체

아이샤

싱글 톤 객체는 한 번만 인스턴스화 할 수 있으며 목표 C에서 싱글 톤을 사용하여 공유 리소스에 대한 전역 액세스 권한을 갖습니다. 또한 다음 방법을 사용하여 싱글 톤이 인스턴스화된다는 것을 알고 있습니다.

    + (instancetype)sharedManager
{
    static PhotoManager *sharedPhotoManager = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedPhotoManager = [[[self class] alloc] init];
        sharedPhotoManager->_photosArray = [NSMutableArray array];
    });
    return sharedPhotoManager;
}

하지만 나도 할 수 있어요

PhotoManager *sharedManager = [[PhotoManager alloc] init];

이제 이런 식으로 동일한 싱글 톤 클래스의 다른 인스턴스를 만들 수도 있습니다. 그러면 두 개의 인스턴스가있는 경우 클래스가 싱글 톤이됩니다.

명확히하십시오.

비탈리 S.

init이러한 트릭 을 사용 하여 호출을 금지 할 수 있습니다 - (instancetype)init NS_UNAVAILABLE;. 싱글 톤 인터페이스에 정의를 추가 하십시오.

[[PhotoManager alloc] init];사용 대신[[[self class] alloc] init];

PhotoManager *sharedManager = [[PhotoManager alloc] init]; 컴파일되지 않습니다.

내 예가 있습니다.

@interface SomeSingleton : NSObject

+ (instancetype)sharedInstance;
- (instancetype)init NS_UNAVAILABLE;

@end

@implementation SomeSingleton

+ (instancetype)sharedInstance {
    static dispatch_once_t onceToken;
    static SomeSingleton *instance;
    dispatch_once(&onceToken, ^{
        instance = [[[self class] alloc] init];
    });

    return instance;
}

- (instancetype)init {
    self = [super init];

    return self;
}

@end

결과적으로 SomeSingleton *s1 = [SomeSingleton sharedInstance];작동하지만 SomeSingleton *s2 = [[SomeSingleton alloc] init];컴파일 오류가 발생합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP의 싱글 톤 객체

분류에서Dev

싱글 톤 객체 구문

분류에서Dev

.Net의 싱글 톤 내부 개체

분류에서Dev

Scala 싱글 톤 객체에서 값의 Java 직렬화

분류에서Dev

Svelte의 싱글 톤

분류에서Dev

RequireJS의 싱글 톤

분류에서Dev

DependencyInjection의 싱글 톤

분류에서Dev

2 개의 인터페이스를 구현하는 싱글 톤 객체 생성

분류에서Dev

다른 클래스의 객체를 싱글 톤 클래스에 전달

분류에서Dev

변수는 내 싱글 톤 객체 내부의 상태를 변경합니다.

분류에서Dev

스칼라 : 모든 범위의 객체가 동일한 싱글 톤입니까?

분류에서Dev

서블릿의 싱글 톤

분류에서Dev

싱글 톤 패턴의 ClassLoader

분류에서Dev

루비의 싱글 톤 메소드 체인

분류에서Dev

코어 데이터 개체의 NSArray가 null 인 싱글 톤

분류에서Dev

자바의 싱글 톤과 C ++의 싱글 톤

분류에서Dev

내 PHP 프로젝트의 싱글 톤 패턴이 두 번째로 빈 객체를 반환합니다.

분류에서Dev

특정 수의 객체를 처리하기 위해 싱글 톤 클래스를 확장하는 방법

분류에서Dev

싱글 톤과 같은 컨테이너 객체를 정의하고 tslint를 행복하게 유지

분류에서Dev

싱글 톤 객체 내부에 무언가를 복제

분류에서Dev

싱글 톤 객체 및 하위 클래스

분류에서Dev

여기에 Map PositioningManager.getInstance () 싱글 톤 null 객체?

분류에서Dev

여기에 Map PositioningManager.getInstance () 싱글 톤 null 객체?

분류에서Dev

신속하게 싱글 톤 객체에 액세스

분류에서Dev

객체 잠금이있는 싱글 톤 패턴

분류에서Dev

싱글 톤 객체에서 클래스 확장

분류에서Dev

스프링이 싱글 톤 객체를 유지하는 방법

분류에서Dev

싱글 톤 UIViewController

분류에서Dev

코 틀린의 개조 싱글 톤

Related 관련 기사

뜨겁다태그

보관