在swift中键入Properties?

时间:2015-11-30 06:05:05

标签: ios swift

在类型属性的Apple文档中,给出了以下代码:

struct AudioChannel {
    static let thresholdLevel = 10
    static var maxInputLevelForAllChannels = 0
    var currentLevel: Int = 0 {
        didSet {
            if currentLevel > AudioChannel.thresholdLevel {
                // cap the new audio level to the threshold level
                currentLevel = AudioChannel.thresholdLevel
            }
            if currentLevel > AudioChannel.maxInputLevelForAllChannels {
                // store this as the new overall maximum input level
                AudioChannel.maxInputLevelForAllChannels = currentLevel
            }
        }
    }
}

类型属性的定义方式与" static"相似。 C语言的变量。在上面的例子中,声明类型属性的优点是什么,如果它们没有被声明会产生什么影响或它会产生什么差异呢?

1 个答案:

答案 0 :(得分:2)

类型变量,顾名思义,是整个类型的变量,而不是实例变量,它们是每个实例的变量。

这意味着,就您发布的代码而言,您创建的每个AudioChannel都会为thresholdLevelmaxInputLevelForAllChannels提供相同的值。当某些内容更改这些变量时,所有实例都可以访问新值。