未使用模型初始化UIView

时间:2020-09-06 08:29:40

标签: swift uiview

我通过以下方式使用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没有被调用,我实际上不知道为什么

1 个答案:

答案 0 :(得分:1)

didSet之所以未调用,是因为您正在carModel中初始化init。因此,要使其正常工作,您可以将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?