【问题标题】:How can UIColor be a type in Swift?UIColor 如何成为 Swift 中的类型?
【发布时间】:2015-09-22 09:02:51
【问题描述】:

我正在学习 Swift,这段基本代码让我感到困惑。代码如下:

var newBackgroundColor : UIColor

我练习过 : Int 或 : String ... 从来没有这个“自定义”的。我的问题是: UIColor 是一个类还是一个类型?如果它是一个类,我们为什么不使用这个代码:

var newBackgroundColor = UIColor

【问题讨论】:

    标签: swift class types


    【解决方案1】:

    如果你 Cmd-单击代码中的 UIColor,你将被带到 UIKit 框架的头文件,直接到 UIColor 公共接口,在那里你可以看到是的,它是一个类。或者,您可以在 Apple 的文档中查找它。

    你不能做到的原因

    var newBackgroundColor = UIColor
    

    ... = 是这里初始化的简写。您不仅要指明属性/变量的类型,还要指定其初始值。 IE。为此,您需要指定它应该是哪种颜色。例如

    var newBackgroundColor = UIColor.blackColor()
    

    否则,如果你真的只需要声明类型,但稍后会进行初始化,那么你应该使用:

    var newBackgroundColor : UIColor
    

    【讨论】:

      【解决方案2】:

      首先,是的,UIColor 是一个类。它是 UIKit 的一部分。见UIColor Class Reference

      第二,你问为什么不能做:

      var newBackgroundColor = UIColor
      

      您不能这样做,因为它在语法上不正确。您不能只说=,其中右侧的表达式只是一个类的名称。它必须是该类的一个实例,例如:

      var newBackgroundColor = UIColor.redColor()
      

      这定义了一个UIColor 变量并使用特定实例对其进行初始化。这实际上是以下的简写:

      var newBackgroundColor: UIColor = UIColor.redColor()
      

      【讨论】:

        【解决方案3】:

        UIColor 既是类又是类型。所有的类都是类型。

        声明

        var newBackgroundColor: UIColor
        

        声明newBackgroundColor 持有对UIColor 类实例的引用。

        【讨论】:

          猜你喜欢
          • 2016-07-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-09-29
          • 1970-01-01
          • 1970-01-01
          • 2015-06-21
          相关资源
          最近更新 更多