UIView 未使用模型初始化

UIView not initialised with model

我正在以这种方式设置带有 cardModel 的 UIView:

var cardModel : CardModel!{
    didSet{
        nameLabel.text = cardModel!.name
    }
}


init(frame: CGRect, cardModel: CardModel) {
    super.init(frame: frame)
    
    
    self.cardModel = cardModel
    
    setUpUI()
    
    setUpGestureRecognizers()
    
    setUpPlayer()
    
}

问题是没有调用变量cardModel didSet 其实我也不知道为什么

didSet 未被调用,因为您正在 init 中初始化 carModel。所以为了让它工作,你可以像这样把 carModel 的初始化放在闭包中:

init(frame: CGRect, cardModel: CardModel) {
    super.init(frame: frame)
    
    ({ self.cardModel = cardModel })()
    
    //...
}

更多信息:Is it possible to allow didSet to be called during initialization in Swift?