过去Swift要实现单例,无非是这三种方式:全局变量,内部变量和dispatch_once方式。但都略显繁琐。
1
2
3
4
5
6
7
8
9
10
11
12
|
class AppManager {
private static let _sharedInstance = AppManager ()
class func getSharedInstance() -> AppManager {
return _sharedInstance
}
private init () {} // 私有化init方法
} //使用方式 AppManager .getSharedInstance()
|
方法2:
1
2
3
4
5
6
7
8
|
class AppManager {
static let sharedInstance = AppManager ()
private init () {} // 私有化init方法
} //使用方式 AppManager .sharedInstance
|
附:为什么需要保证INIT的私有化?
1
2
|
var a1 = AppManager () //确保编译不通过
var a2 = AppManager () //确保编译不通过
|