共享实例swift
您将如何用swift书写以下内容共享实例swift,swift,Swift,您将如何用swift书写以下内容 static ClassName* singleCommon = nil; + (ClassName*)sharedInstance { @synchronized(singleCommon) { if(!singleCommon) singleCommon = [[ClassName alloc] init]; } return singleCommon; } 我通常在Swift中使用sharedInstance,如下
static ClassName* singleCommon = nil;
+ (ClassName*)sharedInstance {
@synchronized(singleCommon) {
if(!singleCommon) singleCommon = [[ClassName alloc] init];
}
return singleCommon;
}
我通常在Swift中使用sharedInstance,如下所示:
private let _sharedInstance = SomeClass()
class SomeClass: NSObject {
class var sharedInstance: SomeClass {
get {
return _sharedInstance
}
}
}
下面是一篇讨论这个问题的博客:
一个好的解决方案是:
class Singleton {
class var sharedInstance: Singleton {
struct Static {
static var instance: Singleton?
static var token: dispatch_once_t = 0
}
dispatch_once(&Static.token) {
Static.instance = Singleton()
}
return Static.instance!
}
}
解决方案和解释来自:
味道很难闻,您的
\u sharedInstance
不在类中,如果它们与您在此处执行的操作相同,则可能与其他实现冲突