【发布时间】:2018-01-10 19:56:12
【问题描述】:
我有很多答案,但我找不到我的问题的明确答案。
在 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()
如您所见,出现了一个问题:如何为不同的签名传递所需的参数?
感谢任何帮助、提示,以及为什么不,烂番茄:-)
【问题讨论】:
-
谁为参数提供值?它们也可以通过吗?也许在字典里?
-
@vacawama 当然,我可以在传递之前创建 MyType,但我的问题是......有点理论问题 ;-)
-
您可以将您的函数包装在一个闭包中,该闭包采用
[String: Any]类型的字典并将其解包并调用您的函数。然后你将字典和([String: Any]) -> MyType闭包传递给你的函数,到时候它会调用functionToCall(dict)。 -
我希望在
perform和NSSelectorFromString,但它们有点有限