如何在swift中创建单例对象
我正在快速有效地学习Singleton模式来创建一个Singleton类,并找出了如下创建的最佳方式。
class SingletonClass{
static let sharedInstance = SingletonClass()
}
因为我使用let
语句,它只读属性,并且必须是线程安全的,所以从Objective C开始不需要dispatch_once()。我使用static
来使sharedInstance
变量作为class
变量。
但是,这是如何保证在整个应用程序中只创建一个实例呢?我错过了一件小事情吗?
什么保证它只创建一次就是关键字static 。 你可以参考这篇文章:https://thatthinginswift.com/singletons/
希望有所帮助。
static关键字表示可以访问成员变量或方法,而不需要实例化它所属的类。 简而言之,这意味着您可以调用方法,即使您从未创建过它所属的对象
如果你想阻止你的类的实例化(有效地限制使用只有单例),那么你将初始化器标记为private
:
class SingletonClass{
static let shared = SingletonClass()
private init()
{
// initializer code here
}
}
创建私有的init,例如:
final class Singleton {
// Can't init is singleton
private init() { }
//MARK: Shared Instance
static let sharedInstance: Singleton = Singleton()
//MARK: Local Variable
var emptyStringArray : [String] = []
}
链接地址: http://www.djcxy.com/p/78853.html