Swift 属性基本使用

2017-08-17  本文已影响5人  craig_wang

存储属性

// 一般形式
let name = "panda"
var eat: String
var live: String = "chengdu" {
    willSet {
    }
    didSet {
    }
}
// 懒加载
 lazy var obj = NSObject()
 lazy var objfun: NSObject = { // 这里实现很像计算属性,但尾随闭包返回了一个 有存储空间的对象,对于该对象是存储属性
       let obj = NSObject()
       return obj
 }()

计算属性

// 如下 可以实现只读属性(get值恒不变,set值无效)
var name: String  { // name是两个函数(set get)
    get {
        return "panda" 
    }
    set {
       print(newValue)
    }
}
var name: String  { // get only 
    return "panda"
}
// 但将set get作用在一个存储属性上,就成了属性的快速get set方法了

// 子类重写父类属性
// father
var name: String = "dog"
// child
override var name: String {
       set {}
        get {
            return "cat"
        }
}

类属性

    // 存储属性 (一定要有初始值, 因为没办法在初始化时赋值) 
    //  (延迟初始化,多线程也只会创建一次<用于单列实现>)
    static var name: String = "dog" 

全局和局部 变常量

域: <函数,结构(类 结构体 枚举)> 外 -> 全局, 内 -> 局部

存储属性

计算属性

上一篇 下一篇

猜你喜欢

热点阅读