Swift的单例模式

Swift

Comments

单例对象可以我们使用一个类获取对象时,多次创建对象或者多次获取对象,得到的都是同一个对象。无论使用音频特效还是网络工具,我们都可以在我们的应用中使用统一的方式来获取单例资源或服务。

OC下的单例

OC中可以通过在dispatch_once函数的Block中调用初始化方法来实现单例。

+(instancetype)sharedInstance{staticid_sharedInstance=nil;staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{_sharedInstance=[[selfalloc]init];});return_sharedInstance;}

Swift中的单例

Swift中,通过懒加载初始化(可以保证只初始化一次)的静态类属性实现单例。即便是在多线程同时访问的情况下也可以保证单例的实现。

classSingleton{staticletsharedInstance=Singleton()}

如果需要额外的初始化操作,你可以通过调用Block的方式来实现:

class Singleton {

static let sharedInstance: Singleton = {

let instance = Singleton()

// setup code

return instance

}()

}

你可能感兴趣的:(Swift的单例模式)