我想检查图像是否存在,但是在可失败的初始化中......我可以做到丑陋,但我真的想知道是否self == nil可能......
extension UIImage {
convenience init?(_ name:String) {
let image = UIImage(named:name)
guard image != nil else { Assert("image \(name) missing yo"); return nil }
self.init(named: name)
}
}
Run Code Online (Sandbox Code Playgroud)
更干净但不编译
extension UIImage {
convenience init?(_ name:String) {
self.init(named: name)
if self == nil { Assert("image \(name) missing yo") }
}
}
Run Code Online (Sandbox Code Playgroud)
静态 func 不如 init 有趣
extension UIImage {
static func with(_ name:String) -> UIImage? {
let image = UIImage(named:name)
if image == nil { Assert("image \(name) missing yo") }
return image
}
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的时间
** 编辑 **
也许我需要两者?
extension UIImage {
convenience init?(_ name:String) {
self.init(named:name)
}
}
extension Optional where Wrapped == UIImage {
init?(_ name:String) {
self.init(name)
if self == nil {
Assert("image \(name) missing yo")
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不是 100% 确定我是否正确回答了您的问题。但我认为你想要这样的东西:(让我知道它是否有帮助或为什么没有)
extension Optional where Wrapped == UIImage {
init?(_ name:String) {
self.init(name)
if self == nil {
Assert("image \(name) missing yo")
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |