博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在单例模式下禁止init
阅读量:5889 次
发布时间:2019-06-19

本文共 875 字,大约阅读时间需要 2 分钟。

hot3.png

有两种方法

第一种,在init里面抛出异常,定义私有的init

- (instancetype)init {    [self doesNotRecognizeSelector:_cmd];    return nil;}- (instancetype)initPrivate {    self = [super init];    if (self) {    }    return self;}+ (instancetype)sharedInstance {    static MySingleton *sharedInstance;    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        sharedInstance = [[self alloc] initPrivate];    });    return sharedInstance;}

第二种,在init里面直接返回单例

- (instancetype)init {    return [[self class] sharedInstance];}- (instancetype)initPrivate {    self = [super init];    if (self) {    }    return self;}+ (instancetype)sharedInstance {    static MySingleton2 *sharedInstance;    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        sharedInstance = [[self alloc] initPrivate];    });    return sharedInstance;}

转载于:https://my.oschina.net/nerozhao/blog/466731

你可能感兴趣的文章
PLSQL Developer软件使用大全
查看>>
swift三方库
查看>>
杭州之行
查看>>
oracle ORA-00917: missing comma 是因为少逗号
查看>>
策略模式简介
查看>>
UIViewController中loadView的用法(应当注意的几点)
查看>>
POJ NOI0105-42 画矩形
查看>>
Java 数组在内存中的结构
查看>>
《关爱码农成长计划》第一期报告
查看>>
entity framework 6 通用数据类
查看>>
读取FTP上的excel文件,并写入数据库
查看>>
vs2008快捷键极其技巧 转载
查看>>
window 7上安装Visual Studio 2017失败的解决方法
查看>>
JavaScript 正整数正则表达式
查看>>
单元测试之Stub和Mock
查看>>
【转】Java泛型-类型擦除
查看>>
PredictionIO+Universal Recommender快速开发部署推荐引擎的问题总结(2)
查看>>
【232】◀▶ IDL显示地理图像
查看>>
【116】Windows 系统组合键
查看>>
学习进度表 04
查看>>