在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语言的“静态”变量。在上面的示例中,声明类型属性的好处是什么,如果不声明它们,将会产生什么效果或产生什么不同?
最佳答案
顾名思义,类型变量是整个类型的变量,而实例变量则是每个实例的变量。
这意味着,对于您发布的代码,您创建的每个AudioChannel
的thresholdLevel
和maxInputLevelForAllChannels
都将具有相同的值。当某些变量发生变化时,所有实例都可以访问新值。
关于ios - 快速输入属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33992351/