Swift Then 框架

Then 是一个 Swift 初始化器的语法糖,简化了初始化(或者修改属性)的代码量。

Then 框架非常简单,代码量在 60 行左右。

Then 框架对 NSObject 扩展了 then() 方法。下面是官方提供的一个示例:

let label = UILabel().then {
    $0.textAlignment = .center
    $0.textColor = .black
    $0.text = "Hello, World!"
}

它等价于:

let label: UILabel = {
    let label = UILabel()
    label.textAlignment = .center
    label.textColor = .black
    label.text = "Hello, World!"
    return label
}()

自定义的类,可以通过扩展 Then 协议,来使用 then():

extension MyType: Then {}

let instance = MyType().then {
    $0.really = "awesome!"
}

另外还提供了 do()with()

do()

do() 可以代码的键入量

let newFrame = oldFrame.with {
    $0.size.width = 200
    $0.size.height = 100
}
newFrame.width // 200
newFrame.height // 100

with()

with()可以创建新值

UserDefaults.standard.do {
    $0.set("devxoul", forKey: "username")
    $0.set("devxoul@gmail.com", forKey: "email")
    $0.synchronize()
}

总结

Then 框架一共提供了三个方法:

  • then() 用在初始化,可以减少代码量。
  • do() 用在设置属性,可以减少代码量。
  • with() 复制原值,并修改新值的属性,返回修改后的新值。

do()then() 的区别就是: do() 没有返回值,then() 将修改后的 self 进行了返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值