在Apple的
Using Swift with Cocoa and Objective-C document(更新为Swift 3)中,他们给出了以下Singleton模式的例子:
class Singleton { static let sharedInstance: Singleton = { let instance = Singleton() // setup code return instance }() }
我们假设这个单例需要管理一个变量数组的字符串。如何/我将在哪里声明该属性并确保它被正确初始化为一个空的[String]数组?
你可以这样初始化一个空数组。
原文链接:https://www.f2er.com/swift/320725.htmlclass Singleton { //MARK: Shared Instance static let sharedInstance : Singleton = { let instance = Singleton(array: []) return instance }() //MARK: Local Variable var emptyStringArray : [String] //MARK: Init init( array : [String]) { emptyStringArray = array } }
或者如果你喜欢不同的方法,这个会做的很好。
class Singleton { //MARK: Shared Instance static let sharedInstance : Singleton = { let instance = Singleton() return instance }() //MARK: Local Variable var emptyStringArray : [String]? = nil //MARK: Init convenience init() { self.init(array : []) } //MARK: Init Array init( array : [String]) { emptyStringArray = array } }