我们可以在iOS上将函数对象转换为String吗?

时间:2018-04-06 16:51:18

标签: ios objective-c swift function methods

在JavaScript中,我们有类似.toString的东西,它可以将整个函数对象转换为字符串。 我们在IOS上有类似的东西吗?

例如,在JavaScript中,如果我们有这样的函数,在使用.toString转换它并在控制台中打印值后,我们会看到整个函数对象。

function sum(a, b)
{ 
  return a + b;
}
console.log(sum.toString());

// expected output: 
// "function sum(a, b) 
//   {
//return a + b;
//  }"

我们可以为IOS做类似的事吗?我在Swift中尝试了String(描述:Function),但这不起作用,并将输出作为(Function),但不是像JavaScript中那样完整的结构.toString。

 public func say_hello()
 {
    print("Hello, World!")
 }

String(describing: say_hello))
//Output:(Function)

2 个答案:

答案 0 :(得分:0)

尽管有许多评论解释了为什么不可能(在许多情况下也不可行),但我想指出您可以在Swift应用程序中使用JavaScript代码,从而使用该语言的序列化机制。有关详细信息,请查看JSContext。这当然不会使事情变得更简单,但它确实在运行时注入/更改/扩展功能提供了额外的灵活性。

答案 1 :(得分:0)

这在Swift / Objc中是不可能的