在Swift测试包中,我使用以下行来获取类的类对象,该类在动态加载的包(MyPlugin
)中定义。该包包含Swift和Objective-C代码,并且在执行以下命令之前成功加载:
let aClass = NSClassFromString("MyPlugin.BackendAPIManager") as! BackendAPIManager.Type
当测试尝试执行该行时,我收到以下运行时错误:
dyld: lazy symbol binding failed: Symbol not found: __TMaC16MyPlugin17BackendAPIManager
将线路更改为
时let aClass = NSClassFromString("MyPlugin.BackendAPIManager") as! NSObject.Type
我可以用
let apiURL = aClass.perform(#selector(BackendAPIManager.apiUrl(path:)), with: "/something")
这意味着通过bundle正确加载了类,但不知怎的,我无法通过其名称访问该类。找不到相应的符号,我不知道是什么原因引起的。有什么想法吗?