将类转换为其超类

时间:2016-09-24 04:59:05

标签: ios arrays swift class

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

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

的值

有办法吗?感谢〜

2 个答案:

答案 0 :(得分: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
    }
}

答案 1 :(得分:0)

如果您只想弄明白class1,可以这样做:

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