iOS swift便利构造器

发布时间 2023-10-27 15:15:00作者: 東玖零

背景:经常需要把一些UI内容写到地一个类里,初化的时候只设置位置,我们能不能把一些已知的参数通过初化的时候直接传进去呢?显然是可以的。

假如我们要写一个弹框列表,已知列表的内容,弹框背景全屏幕展示,怎么把列表数据当参数在初化时传进去呢,接下直接上代码。

 

class UBListChoiceView: UIView {

var callback:Callback?

var datas:[String]?

// 主要看这里
convenience init(datas:[String]?, callback:Callback?) {
let rect = UIScreen.main.bounds
self.init(frame: rect)
self.datas = datas
self.callback = callback
initSubviews()
}

func initSubviews() {
// 实现具体内容
}

}

  

关键是使用convenience关键字init方法的定义及self.init方法调用,搬个砖加深一下印象。