美文网首页
iOS开发 正确创建一个单例的方式

iOS开发 正确创建一个单例的方式

作者: 喜剧收尾_XWX | 来源:发表于2020-12-24 11:51 被阅读0次

参考文章https://www.jianshu.com/p/684895b89a26


#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface DataManager : NSObject

+ (instancetype)shareManager;
-(instancetype)init NS_UNAVAILABLE;
+(instancetype)new  NS_UNAVAILABLE;

@end

NS_ASSUME_NONNULL_END

#import "DataManager.h"

@interface DataManager()<NSCopying,NSMutableCopying>

@end

static DataManager *manager = nil;

@implementation DataManager

+ (instancetype)shareManager{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        manager = [[self alloc]init];
    });
    return manager;
}

+ (id)allocWithZone:(struct _NSZone *)zone{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        manager = [super allocWithZone:zone];
    });
    return manager;
}
- (nonnull id)copyWithZone:(nullable NSZone *)zone {
    return manager;
}

- (nonnull id)mutableCopyWithZone:(nullable NSZone *)zone {
    return manager;
}
@end

相关文章

网友评论

      本文标题:iOS开发 正确创建一个单例的方式

      本文链接:https://www.haomeiwen.com/subject/wzqmnktx.html