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