swift 自定义初始化构造函数有点麻烦 上代码
private lazy var targetType:TagTarget = {
let name = TagStyle.tagStyle_green
return name
}()
private lazy var contentLabel:UILabel = {
let name = UILabel()
name.text = "准备中"
return name
}()
convenience init(style:TagTarget) {
self.init(frame:CGRect.zero)
targetType = style
setUpView()
}
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
- 成员成员变量必须要赋值初始值,不然会报没有初始化成员变量的错误 可以用懒加载 也可以用隐式拆包设置默认值
- 重写系统初始化方法 override init(frame: CGRect)
- 在自定义方法里面self. 调用系统方法 然后调用自己的操作
前缀能写就尽量写吧,你写的越精确swift的性能越高,也不枉官网吹就说swift是为研究高性能代码的最终结果,在这里又想说一句它的性能确实高,我在爬数据的时候8万多条数据从掉接口到生成就几秒钟,OC是万万比不上的
比较麻烦 还是要吐槽一下的,OC里面就方便多了直接加参数
网友评论