我在Swift编程中遇到了很大的问题.我试图从父级获取子类的名称.这是一个示例,我想做的事情:
class Parent {
class func sayHello() {
let nameChildClass = //
println("hi \(nameChildClass)")
}
}
class Mother: Parent {
}
class Father: Parent {
}
Mother.sayHello()
Father.sayHello()
Run Code Online (Sandbox Code Playgroud)
我知道还有其他方法,但我真的需要这样做.
你可以使用这样的函数:
func getRawClassName(object: AnyClass) -> String {
let name = NSStringFromClass(object)
let components = name.componentsSeparatedByString(".")
return components.last ?? "Unknown"
}
Run Code Online (Sandbox Code Playgroud)
它接受一个类的实例并使用获取类型名称NSStringFromClass.
但是类型名称包含命名空间,因此要将其拆分为数组,使用点作为分隔符 - 实际的类名是返回数组的最后一项.
您可以按如下方式使用它:
class Parent {
class func sayHello() {
println("hi \(getRawClassName(self))")
}
}
Run Code Online (Sandbox Code Playgroud)
这将打印实际继承类的名称
| 归档时间: |
|
| 查看次数: |
1337 次 |
| 最近记录: |