// GCD中的一次性代码
// 在写单例的时候,经常使用.
// 最简单的实现单例设计模式的方法.
//====================OC版单例=====================
/**
* 快速创建工具类
*/
+(instancetype)share<#Manager#>{
static id instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[super alloc]init];
});
return instance;
}
//=====================Swift版防OC版单例=======================
class <#SoundTools#>: NSObject {
static var instance: <#SoundTools#>?
static var token: dispatch_once_t = 0
//swift仿OC 创建单例
class func share<#SoundTools#>()-><#SoundTools#>{
dispatch_once(&token) { () -> Void in
instance = <#SoundTools#>()
}
return instance!
}
}
//=======================Swift自己单例写法======================
//Swift中的单例写法 - let本身就是线程安全
static let shareTools = SoundTools()
//====================== 不继承NSObject单例====================
///模型
class <#Model#>l {
//单例
static let <#Model#> = <#Model#>()
//构造函数 当使用了单例后,使用private修饰符号能保证只通过单例属性访问对象,不能在外边调用
private init(){
<# 方法()#>
}
}
// 在写单例的时候,经常使用.
// 最简单的实现单例设计模式的方法.
//====================OC版单例=====================
/**
* 快速创建工具类
*/
+(instancetype)share<#Manager#>{
static id instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[super alloc]init];
});
return instance;
}
//=====================Swift版防OC版单例=======================
class <#SoundTools#>: NSObject {
static var instance: <#SoundTools#>?
static var token: dispatch_once_t = 0
//swift仿OC 创建单例
class func share<#SoundTools#>()-><#SoundTools#>{
dispatch_once(&token) { () -> Void in
instance = <#SoundTools#>()
}
return instance!
}
}
//=======================Swift自己单例写法======================
//Swift中的单例写法 - let本身就是线程安全
static let shareTools = SoundTools()
//====================== 不继承NSObject单例====================
///模型
class <#Model#>l {
//单例
static let <#Model#> = <#Model#>()
//构造函数 当使用了单例后,使用private修饰符号能保证只通过单例属性访问对象,不能在外边调用
private init(){
<# 方法()#>
}
}