ios oc 和 swfit 用dispatch_once 创建单例
2015-04-08 10:29
197 查看
网上已经有方法了,我这里就是抄了下,原文链接
/article/4343716.html
http://blog.csdn.net/u010124617/article/details/28856711?utm_source=tuicool
这里的dispatch_once_t就是一个用于标记的整型,没什么特殊之处。
用dispatch_once实现单例的最大好处就是线程安全!!这个经常会被面试问到,建立数据库和网络操作的单例时,确实存在线程安全问题。
先看oc的
再看swfit的,这里使用了内部的struct是因为目前swift的class中不支持static定义类属性。
/article/4343716.html
http://blog.csdn.net/u010124617/article/details/28856711?utm_source=tuicool
这里的dispatch_once_t就是一个用于标记的整型,没什么特殊之处。
用dispatch_once实现单例的最大好处就是线程安全!!这个经常会被面试问到,建立数据库和网络操作的单例时,确实存在线程安全问题。
先看oc的
+ (AccountManager *)sharedManager { static AccountManager *sharedAccountManagerInstance = nil; static dispatch_once_t predicate; dispatch_once(&predicate, ^{ sharedAccountManagerInstance = [[self alloc] init]; }); return sharedAccountManagerInstance; }
再看swfit的,这里使用了内部的struct是因为目前swift的class中不支持static定义类属性。
class SwiftSingleton{ class func shareInstance()->SwiftSingleton{ struct YRSingleton{ static var predicate:dispatch_once_t = 0 static var instance:SwiftSingleton? = nil } dispatch_once(&YRSingleton.predicate,{ YRSingleton.instance=SwiftSingleton() } ) return YRSingleton.instance! } }
相关文章推荐
- dispatch_once创建单例
- iOS学习笔记 —利用dispatch_once创建单例
- 利用dispatch_once创建单例
- iOS学习笔记42—利用dispatch_once创建单例
- IOS:利用dispatch_once创建单例
- <iOS>利用dispatch_once创建单例
- 利用dispatch_once创建单例
- 利用dispatch_once创建单例
- 利用dispatch_once创建单例
- 【iOS开发】利用dispatch_once创建单例
- iOS 使用 dispatch_once 创建线程安全的单例
- IOS 使用dispatch_once 创建单例
- 利用dispatch_once创建单例
- 利用dispatch_once创建单例
- 利用dispatch_once创建单例
- IOS 运用dispatch_once 创建单例 MARK
- 利用dispatch_once创建单例
- 利用dispatch_once创建单例
- 利用dispatch_once创建单例
- 使用GCD的dispatch_once创建单例