在Objective-C中,类通常会静态引用该类将使用多次的实例。例如,
@implementation MyClass
static NSDateFormatter *dateFormatter = nil;
+ (void) initialize {
if (self == [MyClass class]) {
dateFormatter = [[NSDateFormatter alloc] init];
}
}
@end
在Swift中,我们不再需要在两个不同的位置声明和初始化此静态对象。我们可以简单地做
let dateFormatter = NSDateFormatter()
在类范围内,并且在加载类时初始化日期格式化程序。
我的问题:在Swift中编写代码时,是否有任何理由不使用这种新模式?仍然有可能在模块范围内声明日期格式化程序,然后在其中进行初始化initialize
。有什么理由要分两个步骤进行吗?
不,没有这样的原因。自初始化变量是必经之路。
更好的是,将其自初始化为一个被称为闭包的数据,然后就可以在此处进一步格式化/配置日期格式化程序。
不仅如此,如果您将其标记为,@lazy
那么直到您第一次实际访问它时,它才会被初始化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句