gpt4 book ai didi

ios - 为什么在相似的代码片段中初始化的顺序不同。 swift 4

转载 作者:行者123 更新时间:2023-11-30 11:30:27 25 4
gpt4 key购买 nike

为什么这个片段的工作方式不同:

1 - 工作正常

class TableViewCell: UITableViewCell {

@IBOutlet weak var fullName: UILabel!
@IBOutlet weak var age: UILabel!

var viewModel: TableViewCellViewModelType? {
willSet(viewModel) {
fullName.text = viewModel?.fullName
age.text = viewModel?.age
}
}
}

2 - 错误,因为标签等于 nil。但如果我删除 willSet block 并使用 viewWillAppear 来代替,此代码片段效果很好

class DetailViewController: UIViewController {

@IBOutlet weak var label: UILabel!
var viewModel: DetailViewModelType? {
willSet(viewModel) {
guard let viewModel = viewModel else { return }
self.label.text = viewModel.description
}
}
}

为什么第一种情况一切正常,所有导出都不为零,而第二种情况则以另一种方式工作,并且在设置 viewModel 时导出为零(来自源 VC 的prepareForSegue 方法)

最佳答案

第二个 case 标签为 nil,因为 VC 尚未呈现,所以它的所有导出都是 nil(与 viewWillAppear 相比),但它可以与单元一起使用,因为它已经被加载了

关于ios - 为什么在相似的代码片段中初始化的顺序不同。 swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50308480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com