我得到了很多答案,但我无法找到对我的问题的确切答案。
在Swift中,我有3种(或更多种)不同的方法。他们唯一的共同点是他们的回归类型,例如
A(a:String)->MyType
B(a:Int,b:String,c:AnyObject,d:Whatever)->MyType
C(a:Int,b:String,c:Other)->MyType
我需要将函数作为类方法的参数传递,例如
myClass.configureIOTDevice(configFile:String, functionToCall:A)
然后,在我想要调用的方法体内:
functionToCall()
正如您所看到的,出现了一个问题:如何为不同的签名传递所需的参数?
任何帮助,提示,为什么不,腐烂的番茄是值得赞赏的: - )
答案 0 :(得分:0)
你可以这样
func getData( functionToCall : Any) {
if let function = functionToCall as? ()-> Void {
function()
}
else if let function = functionToCall as? (String, String) -> Int {
let result = function("a","b")
}
}