我有这段代码
if let c: NSObject.Type = NSClassFromString(TestProject.ViewController) as? NSObject.Type{
let c_tmp = c.init()
c_tmp.perform(Selector(("test")))
}
执行:
@objc public func test(){
print("This is Test ")
}
它有效。
但是,目前发送一个参数:
if let c: NSObject.Type = NSClassFromString(TestProject.ViewController) as? NSObject.Type{
let dato:Int=4
let c_tmp = c.init()
c_tmp.perform(Selector(("test")), with: dato)
}
@objc public func test(_ dato:Int=0){
print("This is Test \(dato)")
}
我收到错误:
无法识别的选择器发送到实例0x7fbec8723cf0 2018-04-17 16:59:16.789925-0600 ExcelAgenda [15973:2000202] ***终止应用 由于未被捕获的异常' NSInvalidArgumentException',原因: ' - [TestProject.ViewController测试]:发送到无法识别的选择器 实例0x7fbec8723cf0'
如何使用参数执行功能?
答案 0 :(得分:0)
错误的选择器。变化
c_tmp.perform(Selector(("test")), with: dato)
到
c_tmp.perform(Selector(("test:")), with: dato)