arrays - 具有特定类型的对象数组

标签 arrays swift

我有一个对象数组,例如

var objects: [AnimalDetailModel] = ...

还有三个类

  • AnimalDetailModel 是一个基类

  • DogDetailModel 是一个扩展 AnimalDetailModel

  • 的类
  • CatDetailModel 是一个扩展 AnimalDetailModel

  • 的类

我从 datasource 创建并添加 DogDetailModelCatDetailModelAnimalDetailModel 数组到 对象。当填充 tableView 时,我想要的是从对象中获取对象并检查它是否属于 DogDetailModelCatDetailModelAnimalDetailModel 类型

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/

相关文章:

javascript - 减法运算符如何触发数组到数字的转换?

php - 匹配后如何添加特定的键值?

android - 如何在 flutter 中实现音频流应用和安全存储

arrays - 如何遍历奇数数组并将每个实例加 5?

swift - 将地址簿联系人图像加载到 Collection View 单元格

php - 如何在 PHP 中将最后所需的天数转换为周数

arrays - 从数组中找到一个真正的整数平方根

java - 简单的Java数组程序

ios - Swift 将 NSTimeInteval 转换为 NSDate

html - 使用正则表达式在 HTML 中进行搜索? [ swift 1.2]