IOS单例模式推荐写法(转载)

 1 +(instancetype)sharedUserLoginModel{
 2  
 3     static YLWUserLoginModel *instance;
 4     
 5     static dispatch_once_t onceToken;
 6     
 7     dispatch_once(&onceToken, ^{
 8         
 9         instance = [[YLWUserLoginModel alloc]init];
10         
11     });
12     return instance;
13     
14 }

这种写法的好处是:

1. 线程安全。

2. 满足静态分析器的要求。

3. 兼容了ARC

总结:1.这个方法可以在创建单例或者某些初始化动作时使用,以保证其唯一性。2.该方法是线程安全的,所以请放心大胆的在子线程中使用。(前提是你的dispatch_once_t *predicate对象必须是全局或者静态对象。这一点很重要,如果不能保证这一点,也就不能保证该方法只会被执行一次。)

转自:http://www.lrdup.net/archives/1034

 

posted @ 2016-05-28 11:32  繁星净土  阅读(359)  评论(0编辑  收藏  举报