因此,最近我一直在考虑在UIColor扩展中定义一些自定义颜色,但是我已经看到了各种实现方法。是否有关于此的最佳实践记录在任何地方?
例如,我已经看到了这两种方式:
extension UIColor {
static let myColor = UIColor(colorLiteralRed: 1, green: 1, blue: 1, alpha: 1)
}
//called like UIColor.myColor
Run Code Online (Sandbox Code Playgroud)
要么
extension UIColor {
static var myColor: UIColor {
return UIColor(red:1, green:1, blue:1, alpha:1.0)
}
}
//called like UIColor.myColor
Run Code Online (Sandbox Code Playgroud)
这里有基于非观点的最佳实践吗?还是只是出于个人喜好?(我知道示例中的颜色实际上不是自定义的:D)
通常,第二种方法的好处是每个调用者都为其收到一个新实例。他们每个人都可以变异其副本,而不会影响其他人。
使用第一种技术,一个调用者可以获得对共享库的引用UIColor,并对其进行修改,以使其全局影响所有其他调用者。但是,由于UIColor它不是可变的,因此不必担心。
对于UI颜色不变的对象,最好使用第一个选项,因为这样可以节省内存(所有调用者都引用单个共享对象,而不是副本)。
| 归档时间: |
|
| 查看次数: |
364 次 |
| 最近记录: |