在Swift中从运行时的闭包中获取参数信息

时间:2014-12-17 14:20:15

标签: ios swift runtime closures

您可能知道,Swift中没有NSMethodSignature(更多信息,例如:https://developer.apple.com/swift/blog/?id=19)但是,我想在运行时获取有关闭包中参数的信息。所以如果我定义了这个闭包:

 var theClosure: ((someString: String) -> ())?

我想在运行时知道参数名称(“someString”)和类型(String)。这还有可能吗?我可以建议一个包含该信息的静态表,但我发现在运行时获取信息更好。 非常感谢。

1 个答案:

答案 0 :(得分:-1)

我不太确定参数名称,但是对于类型信息,有dynamicType属性。

来自documentation

  

[...]您可以将dynamicType表达式与要访问的类型的实例一起使用   该实例的运行时类型为值[...]

他们的示例代码基本上是let ourType = someInstance.dynamicType。如果您希望该类型为字符串,则可以使用printClassName()类方法。