【发布时间】:2022-01-05 21:15:17
【问题描述】:
我想将我的 viewmodel 添加到我的 CustomTableViewCell,然后能够将我在 viewmodel 中的数据与我的 func configure() 绑定,但是当我尝试时,我在 override init "Property' 中遇到错误self.viewModel' 未在 super.init 调用中初始化”。 我尝试创建另一个 init,但我收到另一个错误“必须调用超类 'UITableViewCell' 的指定初始化程序”
这是我的代码:
final class CustomTableViewCell: UITableViewCell {
// MARK: - Properties
private let returnAmount = UILabel.subtitle()
private let margin: CGFloat = 15
static let identifier = "CustomTableViewCell"
static let rowHeigh: CGFloat = 175
var viewModel: TableViewCellViewModel
// MARK: - Init
init(viewModel: DetailViewModel) {
self.viewModel = viewModel
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
contentView.backgroundColor = UIColor.clear
backgroundColor = UIColor.clear
setupViews()
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: - Configure View
func configure(){
returnAmount.text = viewModel.returnAmount
}
查看模型:
import Foundation
class TableViewCellViewModel {
private let data: Contacts?
init(data: Contacts) {
self.data = data
}
var returnAmount: String {
let amount = data?.returnAmount ?? 0
return amount.formatThousandsAndDecimal(intValue: amount)
}
在这些情况下我该如何解决?
【问题讨论】:
标签: ios swift uitableview mvvm dependency-injection