在 Swift 中创建单例类总体来说可以使用两种方法,将单例对象声明为类型常量,或者使用GCD方法实现。
声明为类型常量
class SingletonClass1 {
static let shared = SingletonClass1()
private init() {
}
// 将初始化方法设为私有访问级别,禁止外部使用
}
使用GCD方法实现
Swift 中无法直接使用 dispatch_once_token 函数,我们需要自己对 DispatchQueue 进行扩展,添加 once_token 方法:
import Foundation
extension DispatchQueue {
private static var _onceTracker = [String]()
/// 标记某个任务只执行一次,token 用来标记该任务
public class func once(token