首页 > 编程语言 > 详细

在Swift中实现单例方法

时间:2015-07-29 13:48:50      阅读:170      评论:0      收藏:0      [点我收藏+]

在写Swift的单例方法之前可以温习一下Objective-C中单例的写法:

1 + (instancetype)sharedSingleton{
2     static id instance;
3     
4     static dispatch_once_t onceToken;
5     dispatch_once(&onceToken, ^{
6         instance = [[self alloc] init];
7     });
8     return instance;
9 }

首先可以考虑仿照OC中的写法写一个。

因此Swift中的一种写法可以如下:

 1 class Singleton: NSObject {
 2 
 3     static var instance: Singleton?
 4     static var onceToken: dispatch_once_t = 0
 5     
 6     //仿照OC中的写法
 7     class func sharedSingleton() ->Singleton {
 8         dispatch_once_(&onceToken) { () -> Void in
 9             instance = Singleton()
10     
11         }
12         return instance!
13     }
14 }

 

Swift在OC基础之上做了很多优化提升,因此可以考虑利用Swift的一些新的特性来实现单例。

考虑到Swift中let本身就是线程安全的,因此在Swift中实现单例可以非常简练:

static let sharedSingleton = Singleton()

由于实现方式已经从原来的函数变成了属性,因此在使用时也需要做相应的调整,使用时如下:

Singleton.sharedSingleton

由此可见,在优化吸收多种语言优点之后出现的Swift,在实现单例上相比以往有了很大程度的精简。

在Swift中实现单例方法

原文:http://www.cnblogs.com/OceanHorn/p/4685623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!