我从Foo 到Foo 的类型转换遇到问题。
static func castToChannelViewModel(data: [CategoriesSectionInfo<AnyObject>]) {
var result = [CategoriesSectionInfo<ChannelViewModel>]()
for item in data {
if item is CategoriesSectionInfo<ChannelViewModel> {
result.append(item as CategoriesSectionInfo<ChannelViewModel>)
}
}
}
即使我检查这种类型是否正确,我也有这样的错误:
无法强制转换类型为CategoriesSectionInfo 的值以类型为'CategoriesSectionInfo
最佳答案
AFAIK,你做不到。至少我不知道怎么做。
(您也无法在Java中执行类似的操作,但可以在其中使用Foo<T extends Bar>
)
尝试这个
let cannelViewModel = CategoriesSectionInfo<ChannelViewModel>(item)
要么
result.append(CategoriesSectionInfo<ChannelViewModel>(item))
分别。
您可能必须在
item
之前加上一些前缀:。 Xcode将给您一些提示。