Swift: 检查 UIImage 失败初始化
Swift: Checking UIImage failable init
我想检查图像是否存在,但在失败的初始化中...我可以做得很丑,但我真的想知道 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)
}
}
更干净但无法编译
extension UIImage {
convenience init?(_ name:String) {
self.init(named: name)
if self == nil { Assert("image \(name) missing yo") }
}
}
static 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
}
}
提前感谢您的宝贵时间
** 编辑 **
也许我两者都需要?
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")
}
}
}
我不是 100% 确定我的问题是否正确。但我认为你想要这样的东西:(让我知道它是否有帮助或为什么没有帮助)
extension Optional where Wrapped == UIImage {
init?(_ name:String) {
self.init(name)
if self == nil {
Assert("image \(name) missing yo")
}
}
}
我想检查图像是否存在,但在失败的初始化中...我可以做得很丑,但我真的想知道 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)
}
}
更干净但无法编译
extension UIImage {
convenience init?(_ name:String) {
self.init(named: name)
if self == nil { Assert("image \(name) missing yo") }
}
}
static 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
}
}
提前感谢您的宝贵时间
** 编辑 **
也许我两者都需要?
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")
}
}
}
我不是 100% 确定我的问题是否正确。但我认为你想要这样的东西:(让我知道它是否有帮助或为什么没有帮助)
extension Optional where Wrapped == UIImage {
init?(_ name:String) {
self.init(name)
if self == nil {
Assert("image \(name) missing yo")
}
}
}