Swift iOS访谈:关于财产和财产观察员的一切
属性:属性是与特定类,结构和枚举关联的值。
属性基本上是两种类型。
1.储存财产:
存储属性可以存储变量和常量。
存储类和结构给出的属性。
商店属性无法在扩展名中定义。
2.计算财产:
计算属性是计算而不是存储。
由类,结构和枚举给出的计算属性。
计算属性始终是可变的。
计算属性提供getter和可选的setter
懒惰的存储属性:
直到使用时才计算其初始值的属性。
惰性存储的属性始终是可变的。
惰性属性的应用:属性的初始值取决于外部因素 , 而外部因素的值直到实例初始化完成后才知道。
GPS类{
在里面() {
打印(“正在初始化GPS ...”)
}
}
车类{
惰性变量导航= GPS()
}
var car = Car()
在上面的示例中,在每种情况下都不需要导航属性。
物业观察员:
财产观察员观察并响应财产价值的变化。 每当值改变时都会调用它。
可以在存储属性(懒惰存储属性除外)上定义属性观察器。
可以为覆盖的存储和计算的属性定义属性观察器。
属性观察者不需要为非覆盖的计算属性定义。
类型属性:(静态)
- 不管您创建了多少个该类型的实例,这些属性只有这些属性的一个副本。
- Type属性不能被覆盖。
- 您必须始终为存储的类型属性提供默认值。
静态 varstoredTypeProperty =“ Animesh”
struct SomeStructure {
static varstoredTypeProperty =“某些值。”
静态 var computeTypeProperty:Int {
返回 1
}
}
枚举 SomeEnumeration {
static varstoredTypeProperty =“某些值。”
静态 var computeTypeProperty:Int {
返回 6
}
}
class SomeClass {
static varstoredTypeProperty =“某些值。”
静态 var computeTypeProperty:Int {
返回 27
}
类 var overlayableComputedTypeProperty:Int {
返回 107
}
}