如何在Swift上打印类名?

时间:2014-08-24 20:51:13

标签: swift

在Swift中,我们不能再使用" self.class"。

我想在NSObject的子类中为description方法打印自己的类名。

我该如何打印?或者我应该为获取课程名称制作新方法?


我检查了以下问题,但我无法得到答案。

How do I print the type or class of a variable in Swift?

How do you find out the type of an object (in Swift)?

import UIKit

class PrintClassName: NSObject {
    override init() {
        super.init()
        println("\(self.dynamicType)")
        // Prints "(Metatype)"

        println("\(object_getClassName(self))");
        // Prints "0x7b680910 (Pointer)"

        println("\(self.className)")
        // Compile error!

        println(PrintClassName.self)
        // Prints "(Metatype)"
    }
}

2014.08.25 postscript

我查了一下这个问题。

Swift class introspection & generics

但是println(PrintClassName.self)打印"(元型)"

我想在不在源代码上编写类名的情况下获取类名。

1 个答案:

答案 0 :(得分:39)

import Foundation

class PrintClassName : NSObject {
    override init() {
        super.init()
        println(NSStringFromClass(self.dynamicType))
    }
}