Swift 3/iOS 10 给 UIImage
添加了一个新的初始化器,名称为 imageLiteralResourceName
:
extension UIImage {
required public convenience init(imageLiteralResourceName name: String)
}
这与“public init?(named name: String)”有什么不同?我知道“named”是可失败的初始化程序,而“imageLiteralResourceName”会在无效的图像名称上崩溃。 “imageLiteralResourceName”是否为性能而牺牲了安全性?您应该何时使用“imageLiteralResourceName”替代“named”?
imageLiteralResourceName
只是新图像字面量的语法糖(而且你永远不会显式地调用它)。 - Martin RUIKit.swift
。 - JALXxxLiteralConvertible
协议和相应的init(xxxLiteral ...)
方法都是公共的,但我从未见过有理由显式地使用它们。 - Martin R