swift语言实现单例模式
来源:互联网 发布:mysql创建多个用户 编辑:程序博客网 时间:2024/06/05 16:52
Swift实现单例模式
Swift语言两种的单例实现:
版本一
class SwiftSingleton{ class func shareInstance()->SwiftSingleton{ struct YRSingleton{ static var predicate:dispatch_once_t = 0 static var instance:SwiftSingleton? = nil } dispatch_once(&YRSingleton.predicate,{ YSSingleton.instance=SwiftSingleton() } ) return YRSingleton.instance! }}
对于单例类,需要一个唯一的对外输出实例的shareInstance方法,而通过官方文档的查阅,发现对于class来说,静态方法可以用class func
来标示,静态变量使用class var
来处理,但这里我借助了内部struct的静态变量来对唯一的instance进行存储。 调用时,可以使用
var swiftInstance1=SwiftSingleton.shareInstance()var swiftInstance2=SwiftSingleton.shareInstance()if swiftInstance1===swiftInstance2{//“===”判别是否是同一个实例对象 println("they are the same instance!")}
另外,上面使用到了dispatch_once,有过GCD编程经验的应该会非常熟悉,可以保证线程安全,以及只会被调用一次。
struct版本与class版本几乎一致,唯一区别在于对于func使用的关键字由class func
变为 static func
ban'ben'e
struct StructSingleton{ static func shareInstance()->StructSingleton{ struct YRSingleton{ static var predicate:dispatch_once_t = 0 static var instance:StructSingleton? = nil } dispatch_once(&YRSingleton.predicate,{ YRSingleton.instance=StructSingleton() } ) return YRSingleton.instance! }}
阅读全文
0 0
- swift语言实现单例模式
- swift语言实现单例模式
- Swift实现单例模式
- swift实现单例模式
- Swift - 实现单例模式
- Swift实现单例模式
- OC语言单例模式与Swift单例模式
- Swift实现OC中的单例模式
- swift单例模式一句话实现
- swift 单例模式
- swift 单例模式
- swift单例模式
- Swift单例模式
- swift 单例实现
- Swift 单例模式实现及类方法
- swift基础之实现单例模式(仿NSUserDefaults)
- 单例模式 (C语言实现)
- Swift 的单例模式
- Android OpenGL触摸反馈
- 27 款 iOS 开源库,让你的开发溜到飞起
- PHP 基础语法
- 移动端声明及meta标签设置
- 理解 JavaScript 的 async/await
- swift语言实现单例模式
- SpringMVC4.3x教程之九RESTFul使用
- shell根据进程名杀死相关任务
- 在Eclipse中使用Maven构建SpringMVC项目
- hdu 6071 Lazy Running(优先队列+dijkstra)(2017 Multi-University Training Contest
- Apk的混淆,这里的混淆分为两种代码混淆和资源文件混淆或是通过第三方加固
- 模拟水体
- Vim 操作
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射