【发布时间】:2014-08-27 13:15:10
【问题描述】:
我已经成功的在 Swift 中创建了一个单例对象,但是我觉得实现起来比较冗长。有没有办法缩短这段代码?并将多个格式化程序组合成一个类,其中每个格式化程序都是自己的单例?
import Foundation
class sharedNumberFormatterWithOneDecimalPlace : NSNumberFormatter {
class var sharedInstance: sharedNumberFormatterWithOneDecimalPlace {
struct Singleton {
static let instance = sharedNumberFormatterWithOneDecimalPlace()
}
return Singleton.instance
}
override init () {
super.init()
self.minimumIntegerDigits = 1
self.maximumFractionDigits = 1
self.minimumFractionDigits = 1
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
在我的其他课程中,我可以通过以下方式调用它:
NSNumberFormatter *formatter = sharedNumberFormatterWithOneDecimalPlace.sharedInstance;
NSLog(@"%@", [formatter stringFromNumber:aNumber]);
我希望能够拥有 1 类“MultipleFormatters”,我在其中设置了许多可以在各处使用的格式化程序,然后调用诸如“MultipleFormatters.OneDecimalPlace”之类的东西。
PS。我已经阅读了帖子:Using a dispatch_once singleton model in Swift
谢谢。
【问题讨论】: