存储属性、计算属性和类型属性的区别?

存储属性用来进行数据的存储, 需要分配内存空间。子类(无论是let var static修饰)不能直接重写存储属性。重写(Override)通常用于子类覆盖父类的方法、计算属性或观察者。
计算属性:用来定义计算的过程, 不需要分配空间.计算属性必须使用var关键字进行定义。
类型属性:用于定义某个类所有实例共享的数据。oc和swift都可以有类型属性。
oc需要添加属性关键字class定义类型属性(更像是通过调用属性来调用一个方法,比较像计算属性,oc中无法真正存储值。)
swift类型属性:使用static、 class来定义。static(不支持重写) class(支持子类重写)。

class HealthArticlesVC: BaseViewController {
// 存储属性
var age = 12
let name = "小花"
var ppName: String = { return "abc" }()
 private let _searchTextField: UITextField = UITextField() //搜索
}
//计算属性  应用场景:一般用于获取现有属性加工和计算后的结果。
var petInfo:String{
    get {
        return "getbackName"
    }
    set (newInfo) {
        print("\(newInfo)")
    }
}
//类型属性
struct SomeStructure {
    static var storedTypeProperty = "Some value."
    static var computedTypeProperty: Int { return 1}
}
class SomeClass {
    static var storedTypeProperty = "Some value."
    static var computedTypeProperty: Int {
        return 27
    }
    class var overrideableComputedTypeProperty: Int {
        return 107
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值