我想动态加载一个使用objc运行时从NSObject
继承的Swift类。 (我试图加载的类从ObjC,而不是斯威夫特)objc_getClass:加载swift类继承NSObject
我的雨燕类:
@objc public class TestClass : NSObject {
@objc public func testMethod() -> String {
return "String"
}
}
根据苹果的文档,
的
@objc
属性让你的雨燕提供的API Objective-C和Objective-C运行时间
但是objc_getClass("TestClass")
的结果是(null)
。
我做错了什么?或者根本不可能使用objc运行时加载继承ObjC类的swift类?
实际上,如果你执行'print(TestClass.className())'(没有指定Objective-C名字),它会输出“objc_class_name.TestClass” - 你可以使用'objc_getClass'。所以它在运行时注册,它只有一个前缀名。 – Hamish
@Hamish ooh我不知道。谢谢!我会编辑我的答案。 – JAL
@Hamish Hmm,'TestClass.className()'不为我编译(Swift 3)。 – JAL