您的位置:首页 > 移动开发 > Swift

Swift - 实现单例模式

2016-03-16 16:17 489 查看
过去Swift要实现单例,无非是这三种方式:全局变量,内部变量和dispatch_once方式。但都略显繁琐。

后来从1.2版本起,Swift中添加了如 static let 和 static var 这样的类变量的支持,这样单例的实现又简化了许多。

下面提供两种比较好的单例写法。

要注意:不管哪种写法都要注意将init()方法私有化。因为在Swift中,所有对象的构造器默认都是public,需要重写init让其成为私有的,防止其他对象使用这个类的默认的’()’初始化方法来创建对象。

下面直接上两种写法的代码:

方法1

class AppManager {
static let _sharedInstance = AppManager()

class func getSharedInstance() -> AppManager {
return _sharedInstance
}

private init() {} // 私有化init方法
}

import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

//使用方式
AppManager.getSharedInstance()
}
}


方法2

class AppManager {
static let sharedInstance = AppManager()

private init() {} // 私有化init方法
}

import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

//使用方式
AppManager.sharedInstance
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: