在swift中从字符串获取类

时间:2015-06-01 09:48:06

标签: objective-c swift

我创建了一个名为PredicateController的自定义类。

我需要传递PredicateController类,它将从Objc编写的框架中调用。但是,每当我使用swift的属性时,我都会返回<ProjectName>.PredicateController

我只需要将班级名称设为PredicateController

swift中是否有任何解决方法可以做同样的事情。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以在类上使用self来获取类的类型,然后将其简单地包装到字符串中,例如...

let date = NSDate();
let clazz = NSDate.self
let str = "\(date) is of type \(clazz)"
println(str)

答案 1 :(得分:0)

如果类继承自.className,您可以在实例上使用NSObject

class PredicateController: NSObject {
    // ...
}
let pc = PredicateController()
let klass = pc.className
let name = klass.componentsSeparatedByString(".")[1]
let str = "\(pc) is of type \(name)"
println(str) // "<__lldb_expr_1398.PredicateController: 0x7fd92b465080> is of type PredicateController"

我的答案是@ hexagonstar的后续行动。我不知道这是否是正确的方法,但它确实有效。