【发布时间】:2020-07-15 09:36:39
【问题描述】:
我有一个自定义的 UITableViewCell。它将被多个 Tableviews 使用。所以它有一个不同的模型。 我可以创建一个泛型模型吗?就像
MODProductListCell<T>: UITableViewCell {
var molde: T?
}
但是当我使用这个单元格时。它崩溃了。我不知道发生了什么。
guard let cell = tableView.dequeueReusableCell(withIdentifier: "MODProductListCell", for: indexPath) as? MODProductListCell<Any> else {fatalError()}
它崩溃了
所以问题是我是否有其他方法来创建通用模型,或者我现在正在做的事情有什么问题。
【问题讨论】:
-
你为什么使用
MODProductListCell<Any>?使用您在情节提要中设置的实际类型。您还需要edit 您的问题以minimal reproducible example 的形式包含所有相关代码以使其成为主题。你在使用故事板/xibs吗?如果是,您需要包含您的故事板/xib 设置的屏幕截图。 -
通用
T和Any不相关。泛型不是协变的。 -
@DávidPásztor 因为会有错误:“无法推断通用参数'T'强制转换为'MODProductListCell”
-
T不是具体类型,而是泛型类型参数。您需要设置具体类型。如果这是未知的或每个单元格都在更改,因此无法从情节提要中设置,那么您需要删除通用实现。 -
@DávidPásztor 谢谢。我会尝试使用协议来创建模型。
标签: ios swift uitableview generics