NSClassFromString()总是返回nil

下面的代码打印nil ,尽pipeListCell是一个有效的类。

 var lCellClass : AnyClass! = NSClassFromString("ListCell"); println(lCellClass); 

文档是说方法返回

aClassName命名的类对象,或者如果当前没有加载该名称的类, 则为 nil 。 如果aClassNamenil ,则返回nil

我也尝试获取当前NSClassFromString() LOADED NSClassFromString() ,但仍然是nil

可能是什么问题?

更新:甚至试图做到这一点NSClassFromString("Array")我仍然得到nil

NSClassFromString函数适用于(纯粹的和Objective-C派生的)swift类,但是只有在使用完全限定名的时候NSClassFromString

例如,在一个名为MyApp的项目中,使用名为Person的纯Swift类:

 let personClass: AnyClass? = NSClassFromString("MyApp.Person") 

有关更多信息,请参阅在使用Swift的Cocoa和Objective-C中 使用Swift类名称与Objective-C API

还可以在Objective-C中为符号指定一个名称,它使用@objc注释省略了目标C中的命名空间。 如果您更喜欢使用没有模块的名称,只需使用相同的类名称:

 @objc(Foobar) class Foobar{ } 

NSClassFromString(“Foobar”)将返回Foobar类。

这可能是你的类没有从NSObject扩展的问题。 因为默认情况下,swift没有超类。