【问题标题】:Convert a class to its superclass将类转换为其超类
【发布时间】:2016-09-24 04:59:05
【问题描述】:

首先,我创建了一些这样的类:

class superClass {
}

class class1: superClass {
    var a:Int = 0
}

class class2: superClass {
    var b:Int = 0
}

我构造了一个数组来存储它们:

var myClasses:[superClass] = []

我以这种方式向数组中添加了一些东西:

let newClass = class1()
newClass.a = 1
myClasses.append(newClass)

还有:

let newClass = class2()
newClass.b = 2
myClasses.append(newClass)

现在我想像这样检查数组:

for eachObject in myClasses {
    // code...
}

我想对 eachObject 进行分类并找出它属于哪个类。

如果属于class1,我需要打印eachObject.a

的值

有什么办法吗?谢谢~

【问题讨论】:

    标签: ios arrays swift class


    【解决方案1】:

    你可以这样做

    for eachObject in myClasses {
    
        if let obj = eachObject as?  class1 {
            // class1 type object
        } else {
           // class2  type object    
       }    
    }
    

    使用类型检查运算符is检查对象类型的另一种方法

    for eachObject in myClasses {
    
        if eachObject is  class1 {
            // class1 type object
        } else if eachObject is class2 {
            // class2  type object
        }
    }
    

    【讨论】:

      【解决方案2】:

      如果你只想搞清楚class1,你可以这样做:

      for case let eachObject as class1 in myClasses {
          print(eachObject.a)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-04
        • 2012-07-22
        相关资源
        最近更新 更多