在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
            }
        }
    }
}

类型属性的定义类似于C语言的“静态”变量。在上面的示例中,声明类型属性的好处是什么,如果不声明它们,将会产生什么效果或产生什么不同?

最佳答案

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

这意味着,对于您发布的代码,您创建的每个AudioChannelthresholdLevelmaxInputLevelForAllChannels都将具有相同的值。当某些变量发生变化时,所有实例都可以访问新值。

关于ios - 快速输入属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33992351/

10-09 08:05