我有一个对象数组,例如
var objects: [AnimalDetailModel] = ...
还有三个类
AnimalDetailModel
是一个基类DogDetailModel
是一个扩展AnimalDetailModel
的类
CatDetailModel
是一个扩展AnimalDetailModel
的类
我从 datasource
创建并添加 DogDetailModel
、CatDetailModel
和 AnimalDetailModel
数组到 对象
。当填充 tableView 时,我想要的是从对象中获取对象并检查它是否属于 DogDetailModel
、CatDetailModel
或 AnimalDetailModel
类型
if let objects[indexPath.row] as? DogDetailModel {
return DogTableCell
} else if let objects[indexPath.row] as? CatDetailModel {
return CatTableCell
} else {
return AnimalTableCell
}
在执行此操作时,我得到类型 AnimalDetailModel
没有下标成员。我们如何检查对象数组中的对象类型?
最佳答案
您可以使用简短的 is
属性。
在您的情况下将是:
switch objects[indexPath.row] {
case is DogDetailModel:
return DogTableCell
case is CatDetailModel:
return CatTableCell
default:
return AnimalTableCell
}
关于arrays - 具有特定类型的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57139997/