【发布时间】:2017-05-19 17:19:20
【问题描述】:
我正在尝试在单例类中创建 int 对象变量。这是我的 ObjC 版本:
+(MyClass*) single
{
static MyClass *shareObject = nil;
static dispatch_once_t onceToken;
dispatch_once ( &onceToken, ^{
shareObject = [[self alloc] init];
shareObject.myArray = [NSMutableArray new];
});
return shareObject;
}
Swift 版本:
class MyClass {
static let sharedInstance = MyClass()
var myArray = Array<Any>()
}
如果是 ObjC 版本,我知道 myArray 是 init 一次。但如果是 Swift 版本,我要问你们。 myArray 变量会被初始化一次吗?
【问题讨论】:
-
您可能有兴趣知道
static(或全局)存储变量的访问器当前实际上在 Apple 平台的底层使用dispatch_once(比较 stackoverflow.com/q/43374222/2976878) - 使其更多或更少直接等效于您的 Obj-C+single方法。
标签: objective-c swift singleton