68 MRC单例实现

来源:互联网 发布:mean it 编辑:程序博客网 时间:2024/05/17 08:20
1>MRC单例实现:- (id)init{    if (self = [super init]) {        static dispatch_once_t onceToken;        dispatch_once(&onceToken, ^{            // 加载资源        });    }    return self;}static id _instance;+ (id)allocWithZone:(struct _NSZone *)zone{    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        _instance = [super allocWithZone:zone];    });    return _instance;}+ (instancetype)sharedInstance{    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        _instance = [[self alloc] init];    });    return _instance;}- (oneway void)release{}- (id)autorelease{    return _instance;}- (id)retain{    return _instance;}- (NSUInteger)retainCount{    return 1;}+ (id)copyWithZone:(struct _NSZone *)zone{    return _instance;}
0 0
原创粉丝点击