首先,我创建了一些这样的类:
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
的值有办法吗?感谢〜
答案 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)
}