Swift-技能小结(三)
前言
据上一篇 Swift-技能小结 快过去一年了, 然而这一年时间里并没啥进步😂😂😂😂😂 今天再记录两个Swift开发小问题.
问题一
在构造函数里对属性赋值时, 代码不走属性的didSet
方法
init(touModel: TouModel?) {
self.touModel = touModel
super.init(nibName: nil, bundle: nil)
}
fileprivate var touModel: TouModel? {
didSet {
print("==========")
}
}
解决方案: 使用defer
延迟赋值
defer {
self.touModel = touModel
}
完整代码如下
init(touModel: TouModel?) {
defer {
self.touModel = touModel
}
super.init(nibName: nil, bundle: nil)
}
fileprivate var touModel: TouModel? {
didSet {
print("==========")
}
}
问题二
不能赋值给自身
self.touModel = touModel
上述代码会出现如下错误 Assigning a property to itself
解决方案: 使用下面的方式进行赋值
({self.touModel = touModel}())