Swift UIColor Extensions最佳实践

Tom*_*yBs 3 uicolor swift

因此,最近我一直在考虑在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)

Ale*_*ica 5

通常,第二种方法的好处是每个调用者都为其收到一个新实例。他们每个人都可以变异其副本,而不会影响其他人。

使用第一种技术,一个调用者可以获得对共享库的引用UIColor,并对其进行修改,以使其全局影响所有其他调用者。但是,由于UIColor它不是可变的,因此不必担心。

对于UI颜色不变的对象,最好使用第一个选项,因为这样可以节省内存(所有调用者都引用单个共享对象,而不是副本)。