ios单例模式的实现

来源:互联网 发布:super java 的用法 编辑:程序博客网 时间:2024/06/08 18:34

单例:整个应用或系统只能有该类的一个实例 。

@implementation ClassA

static ClassA* instance;

//重写allocWithZone方法

+ (id)allocWithZone:(struct _NSZone *)zone
{
    static ClassA *instance;   
   
    static dispatch_once_t Token;
   
    dispatch_once(&Token, ^{       //以线程安全的方式执行且仅执行其代码块一次
        
        instance = [super allocWithZone:zone];
    });
    
    return instance;
}

//提供调用方法

+ (instancetype)sharedClassA 
{
    return [[self alloc] init];
}

@end

0 0
原创粉丝点击