NSClassFromString()总是返回nil
下面的代码打印nil
,尽pipeListCell
是一个有效的类。
var lCellClass : AnyClass! = NSClassFromString("ListCell"); println(lCellClass);
文档是说方法返回
由aClassName命名的类对象,或者如果当前没有加载该名称的类, 则为
nil
。 如果aClassName是nil
,则返回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没有超类。