我正在尝试定义一个Swift类,它具有一个递归函数,返回类中所有变量的名称。它适用于打印它的变量,但是当我使用它时,我将它用作我的模型的基类,并且我可能有多层继承。我希望该方法返回当前实例上所有变量名的数组,以及任何超类上任何变量的名称,直到我们到达基类Cool
类。
class Cool:NSObject {
func doStuff() -> [String] {
var values = [String]()
let mirrorTypes = reflect(self)
for i in 0 ..< mirrorTypes.count {
let (name, type) = mirrorTypes[i]
if let superCool = super as! Cool while name == "super" {
values += superCool.doStuff()
}
}
return values
}
}
问题在于:
if let superCool = super as! Cool while name == "super" {
它会导致Expected '.' or '[' after super
编译器错误。