如何避免通过[[alloc] init]创建iOS单例类 财富值3

2016-10-13 11:13发布

网站普遍的创建单例类的方法有下面两种:

+ (instancetype)sharedManager {     static id _sharedInstance = nil;     static dispatch_once_t onceToken;     dispatch_once(&onceToken, ^{         _sharedInstance = [[self alloc] init];     });     return _sharedInstance; }
+ (instancetype)sharedManager {     static id _sharedInstance = nil;     @synchronized(self) {         if (_sharedInstance == nil)             _sharedInstance = [[self alloc] init];     }     return _sharedInstance; }

但是该如何避免意外的用[[alloc] init]创建呢?主要是发现网上找到的大多仅仅只有上面的代码,少有考虑被init或者copy的情况

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
 精彩回答 1  元偷偷看……
 精彩回答 1  元偷偷看……
 精彩回答 1  元偷偷看……
 精彩回答 1  元偷偷看……
mishen - whatsns产品经理
5楼-- · 2016-10-13 11:42
 精彩回答 1  元偷偷看……
 精彩回答 1  元偷偷看……

一周热门 更多>