Swift-技能小结(三)

Swift-技能小结(一)

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}())
Loading Disqus comments...
Table of Contents