Chi*_*buZ 2 init swift option-type
是否可以在便利 init 内以某种方式解开可选 init ?
convenience init(...) {
self.init?(...) ?? self.init()
}
Run Code Online (Sandbox Code Playgroud)
实际上,我正在尝试为以下内容提供便利UIColor:
extension UIColor {
convenience init(for item: ItemType) {
self.init(named: item.rawValue) ?? self.init() // something like this
//self.init(named: item.rawValue)! // works
}
}
Run Code Online (Sandbox Code Playgroud)
初始化器的说话方式受到严格限制。但工厂方法不是!编译(并运行):
extension UIColor {
static func create(for item: ItemType) -> UIColor {
UIColor(named: item.rawValue) ?? UIColor()
}
}
Run Code Online (Sandbox Code Playgroud)