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