如何获取Swift对象的所有属性/函数?

时间:2015-05-26 09:00:04

标签: swift reflection

这些是我的课程:

    class Shape: NSObject {
    var prop1:String?
    let prop2:String = "Shape Default"
    func printEverything(){
        var reflection = reflect(self)
        for var i = 0 ; i < reflection.count ; i++ {
            var (prop,mirror) = reflection[i]
            println(prop);
        }
    }
}

class Rect: Shape {
    var prop3:String?
    let prop4:String = "Rect Default"
    func func2(){
        // body2
    }
}

var aRect = Rect()
aRect.printEverything()

然而printEverything只显示:super,prop3,prop4。 我期待得到整个继承,即:superprop1prop2prop3prop4printEverything,{{1 }}

另外,如何从反射中设置这些属性?

由于

1 个答案:

答案 0 :(得分:0)

您只能获取属性。如果您还需要基类的属性,则可以尝试使用EVRevlection。有关如何获取基类属性的信息,请参阅reflectSub方法。它在关键超级

的项目中