iOS 单列怎么释放?

401 阅读1分钟

主要思路是单例是靠 dispatch_once_t 类型的 token 来确保初始化,只执行一次,来实现单例。

static dispatch_once_t * once_token_factory;
+ (ZDocUIFactory *)sharedInstance{
    static dispatch_once_t onceToken;
    once_token_factory = &onceToken;
    static id factory = nil;
    dispatch_once(&onceToken, ^{
        factory = [[ZDocUIFactory alloc] init];
    });
    return factory;
}

- (void)destoryFactory{
    *once_token_factory = 0;
}