最新 Swift5 属性

Swift中跟实例相关的属性可以分为2大类

存储属性 和 计算属性

struct CirCle {
    // 存储属性 相当于成员变量 存储在实例的内存中
    var redius: Double
    // 计算属性 相当于方法(函数) 不占内存
    var diameter: Double {
        set {
            redius = newValue / 2
        }
        get {
           return redius*2
        }
    }
}

 结构体 类 能定义存储属性 枚举不能定义存储属性
 枚举 结构体 类都可以定义计算属性

计算属性不能用let

创建 类或者结构体的实例时 必须为所有的存储属性设置一个合适的初始值

延迟存储属性

lazy var label: UILabel = {
    let l = UILabel()
    l.text = "sweeter"
    l.font = UIFont.systemFont(ofSize: 10)
    l.textColor = .red
}()

属性观察器

struct CirCle {
    var radius: Double {
        willSet {
            print("willSet", newValue)
        }
        didSet {
            print("didSet", oldValue)
        }
    }
}
var c = CirCle(radius: 10)
c.radius = 20
//willSet 20.0
//didSet 10.0

单例模式

class SingletonOne {
    public static let sharedInstance = {
            // ...
            // ... 
            return SingletonOne()
     }()
    private init() {}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值