Swift class 函数继承问题

Swift class function inheritance issue

我对 Swift class 函数继承有疑问,这里是代码示例:

class A {

    class func getName() -> String {
        return "I'm class A"
    }

    func print() -> Void {
        println(A.getName())
    }
}

class B : A {
    override class func getName() -> String {
        return "I'm class B"
    }
}

var b = B()
b.print() //This line prints out "I'm class A"

最后一行打印出"I'm class A",我的本意是打印出"I'm class B",因为实例类型是class B.[=23中的代码应该怎么改=]一个函数"print()"让classA实现实例类型为B并打印出来"I'm class B"? 如果我删除函数 "getName()" 的 "class" 前缀,那么它将执行我要求的操作,但是如何对 class 函数执行相同的操作?

使用dynamicType.

class A {
    func print() -> Void {
        println(self.dynamicType.getName())
    }
}

顺便提一句,Swift Language Reference中的示例与您的相似。