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)
}