- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已经成功地在 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")
}
}
在我的其他类(class)中,我可以通过以下方式调用它:
NSNumberFormatter *formatter = sharedNumberFormatterWithOneDecimalPlace.sharedInstance;
NSLog(@"%@", [formatter stringFromNumber:aNumber]);
我希望能够拥有 1 类“MultipleFormatters”,我在其中设置了许多在各处使用的格式化程序,然后调用诸如“MultipleFormatters.OneDecimalPlace”之类的东西。附言。我已经阅读了帖子:Using a dispatch_once singleton model in Swift
谢谢。
最佳答案
我认为最好的方法是:
private let _MultipleFormattersSharedInstance = MultipleFormatters()
class MultipleFormatters {
class var sharedInstance: MultipleFormatters {
return _MultipleFormattersSharedInstance
}
}
你可以使用
MultipleFormatters.sharedInstance
然后您可以创建您需要的所有“格式化程序”作为类 MultipleFormatters 中的方法,并在所有地方调用它们。
编辑例如:
假设您想要一个名为“increment”的格式化程序。我不知道你所说的格式化程序是什么意思,但这是一个愚蠢的例子。
private let _MultipleFormattersSharedInstance = MultipleFormatters()
class MultipleFormatters {
class var sharedInstance: MultipleFormatters {
return _MultipleFormattersSharedInstance
}
func increment(number: Int, amount: Int) -> Int{
//Maybe you need something that was initialized with
//the singleton here.
return number + amount
}
}
你会用
let singleton : MultipleFormatters = MultipleFormatters.sharedInstance
let result = singleton.increment(1, amount: 25)
关于ios - 在 Swift 中创建单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25528190/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!