Ios 将类转换为其超类

Ios 将类转换为其超类,ios,arrays,swift,class,Ios,Arrays,Swift,Class,首先,我创建了如下一些类: class superClass { } class class1: superClass { var a:Int = 0 } class class2: superClass { var b:Int = 0 } for eachObject in myClasses { // code... } for case let eachObject as class1 in myClasses { print(eachObject.

首先,我创建了如下一些类:

class superClass {
}

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

class class2: superClass {
    var b:Int = 0
}
for eachObject in myClasses {
    // code...
}
for case let eachObject as class1 in myClasses {
    print(eachObject.a)
}
我构建了一个数组来存储它们:

var myClasses:[superClass] = []
我以这种方式向数组中添加了一些内容:

let newClass = class1()
newClass.a = 1
myClasses.append(newClass)
以及:

现在我想像这样检查阵列:

class superClass {
}

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

class class2: superClass {
    var b:Int = 0
}
for eachObject in myClasses {
    // code...
}
for case let eachObject as class1 in myClasses {
    print(eachObject.a)
}
我想对每个对象进行分类,找出它属于哪个类

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


有办法做到吗?谢谢~

你可以简单地做到这一点

for eachObject in myClasses {

    if let obj = eachObject as?  class1 {
        // class1 type object
    } else {
       // class2  type object    
   }    
}
使用类型检查操作符检查对象类型的另一种方法是

for eachObject in myClasses {

    if eachObject is  class1 {
        // class1 type object
    } else if eachObject is class2 {
        // class2  type object
    }
}

如果您只想了解
class1
,可以这样做:

class superClass {
}

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

class class2: superClass {
    var b:Int = 0
}
for eachObject in myClasses {
    // code...
}
for case let eachObject as class1 in myClasses {
    print(eachObject.a)
}