/**
(8)类型属性:也就是这个属性它属于某一个类的而不是属于某一个对象的。
这个属性在所有属于这个类的对象里面共用一份。
1.也就是“类”本身定义属性,这样的属性不隶属于某一个对象,可以认为所有的对象公用这个属性,
2.值类型(指结构体和枚举)可以定义存储型的或者计算型的类型属性,
而类只能定义计算型的类型属性,存储型的属性不可以做类型属性。 这个在Swift 3.0好像是可以了
对象.属性
*/
struct TypeProperty {
// 属于某一个对象的属性,对于每一个对象都有一份
var property: Int = 0
/**
类型属性, 也就是这个属性它属于某一个类的而不是属于某一个对象的。
这个属性在所有属于这个类的对象里面共用一份。
*/
static var staticProperty: Int = 0
/**
*/
static var staticComputProperty: Int {
return TypeProperty.staticProperty
}
func test() -> Void {
print("property==\(property) staticProperty==\(TypeProperty.staticProperty)")
}
}
var object = TypeProperty.init()
var object1 = TypeProperty.init()
object.property = 10
object1.property = 20
TypeProperty.staticProperty = 10
object.test()
object1.test()
class MyClass {
static var name: String = "zhangsan"
var age: Int = 10
static var staticComputProperty: Int {
get {
return 10
}
set {
}
}
}
var c1 = MyClass.init()
var c2 = MyClass.init()
c1.age = 11
c2.age = 13
MyClass.name = "lisi"
print(MyClass.name)
let dad: Int = MyClass.staticComputProperty
print(dad)
MyClass.staticComputProperty = 11
原文链接:https://www.f2er.com/swift/322415.html