Swift中单例的集中创建方式
2015-10-19 14:21
471 查看
单例模式是设计模式中最简单的一种,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象。
当你只需要一个实例的时候需要使用单例,如UIApplication.sharedApplication(), NSUserDefaults.standardUserDefaults() 等 ,windows的任务管理器,回收站 都是只能同时存在一个。
下面看看swift中创建单例的集中方式:
1、一个句话搞定,所有用到的地方都是同一个
2、
3、
4.
swift还在初学阶段,如果有不对的地方,还望指出。
当你只需要一个实例的时候需要使用单例,如UIApplication.sharedApplication(), NSUserDefaults.standardUserDefaults() 等 ,windows的任务管理器,回收站 都是只能同时存在一个。
下面看看swift中创建单例的集中方式:
1、一个句话搞定,所有用到的地方都是同一个
[code]final class sigleOne { // 单例 static let single = sigleOne(); private init(){} }
2、
[code]final class sigleTwo { // 单例 // class只能用在class类型,但是static在结构体\class\enum都能用,区别就是如果用在class类型里面 static = final class // class func shareInstance() -> sigleTwo { static func shareInstance() -> sigleTwo { struct Sigle{ static var onceToken : dispatch_once_t = 0 static var single:sigleTwo? } // 使用dispatch_once保证创建代码只执行一次 dispatch_once(&Sigle.onceToken) { Sigle.single = sigleTwo .shareInstance() } return Sigle.single! } private init(){} }
3、
[code]final class sigleThree { static var sharedInstance : sigleThree { struct Static { static let instance : sigleThree = sigleThree() } return Static.instance } private init(){} }
4.
[code]//全局的常量 private let single = sigleFour() final class sigleFour{ static var sharedInstance : sigleFour { return single } private init(){} }
swift还在初学阶段,如果有不对的地方,还望指出。
相关文章推荐
- swift学习- 泛型(二十三)
- 17条 Swift 最佳实践规范
- 《从零开始学Swift》学习笔记(Day 24)——枚举
- 《从零开始学Swift》学习笔记(Day 24)——枚举
- Swift UITableView相关功能(五)多分区tableView
- UIApplication.sharedApplication().openURL的使用(Swift版)
- UIView的层级关系和控制(swift)
- NukeSwift实现的图片加载、缓存、处理等库
- SwiftWeather-Swift2实现的天气应用
- [swift] Async
- 在Swift使用UIImagePickerController
- 强大的swift字符串
- swift键盘处理方式
- The Swift Programming Language 中国版
- No1 Swift语法简介
- Swift - 操作SQLite数据库(引用SQLite3库)
- Swift内存管理(ARC)
- HDFS integration with Openstack Swift
- Swift自定义Tool
- swift类名称显示变量