Ios 为什么在相似的代码片段中初始化顺序不同。斯威夫特4
此代码段工作方式不同的原因: 1-工作正常Ios 为什么在相似的代码片段中初始化顺序不同。斯威夫特4,ios,swift,initialization,storyboard,Ios,Swift,Initialization,Storyboard,此代码段工作方式不同的原因: 1-工作正常 class TableViewCell: UITableViewCell { @IBOutlet weak var fullName: UILabel! @IBOutlet weak var age: UILabel! var viewModel: TableViewCellViewModelType? { willSet(viewModel) { fullName.text = vi
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-错误,因为标签等于零。但是,如果我删除willSet块并改用ViewWillDisplay,这个代码段效果会很好
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方法)第二种情况标签为零,因为VC尚未显示,所以它的所有出口都为零(与之相反,在
视图中将出现
),但它与单元格一起工作,因为它已经被加载了谢谢你的回复。但是为什么我设置断点时,第一个触发的断点是outlet,然后会设置一个。如果是这样,反之亦然,对吗?或者我错过了什么?