Swift UIColor扩展最佳实践

3

最近我一直在研究如何在UIColor扩展中定义自定义颜色,但我看到了不同的方法。是否有关于这个问题的最佳实践文档?

例如,我看到过以下两种方法的使用:

   extension UIColor {
     static let myColor = UIColor(colorLiteralRed: 1, green: 1, blue: 1, alpha: 1)
 }

 //called like UIColor.myColor

或者
 extension UIColor {
   static var myColor: UIColor {

    return UIColor(red:1, green:1, blue:1, alpha:1.0)
}
 }
  //called like UIColor.myColor

这里是否有一种非基于个人意见的最佳实践方法?还是只是个人喜好问题?(我知道示例中的颜色实际上并不是自定义的 :D)
1个回答

5
一般来说,第二种方法的好处在于每个调用者都会收到一个新的实例。他们可以改变自己的副本而不影响其他人。
使用第一种技术,一个调用者可以得到对共享UIColor对象的引用,并修改它以影响所有其他调用者,全局地。但是,由于UIColor不可变,这不是一个问题。
在不可变对象(如UI颜色)的情况下,最好选择第一种选项,因为它将节省内存(所有调用者都会获得对单个共享对象的引用,而不是副本)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接