我想实例化一个类并动态调用它的方法。
class Test: NSObject {
@objc func greet() {
print("123")
}
}
我可以使用perform
调用以字符串形式给出的方法
let t = Test()
t.perform(Selector("greet"))
但是我也想以类似的方式初始化测试。
let t = GetClass("Test").init() // some method when called gives it's object
t.perform(Selector("greet"))
Swift类将从NSObject继承,并在其方法中添加@obj
。
如何使用Objective-C方法(来自Swift源代码)执行相同的操作?例如,
let t = NSClassFromString("Test")
t.init() // ??
t.perform(Selector("greet"))
编辑:对于Objective-C,我可以按照Call a method from a String in Swift进行操作。需要包含模块名称才能使此功能正常工作。