+ (instancetype)sharedTools { static id instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [[self alloc] init]; }); return instance;}
Swift 仿 OC 的写法
class SoundTools: NSObject { static var instance: SoundTools? static var onceToken: dispatch_once_t = 0 class func sharedSoundTools() -> SoundTools { dispatch_once(&onceToken) { () -> Void in instance = SoundTools() } return instance! }}
在 Swift 中默认使用
项目名称
作为类的命名空间,但是在做混合开发时,不允许使用特殊符号,可以参照下图修改
导入头文件
#import "单例测试-Swift.h"
导入头文件的格式是
命名空间-Swift.h
Swift 中的单例写法
// Swift 单例写法static let sharedSoundTools = SoundTools()override init() { print("创建单例!")}