【问题标题】:How to convert String to code in Objective-C如何在 Objective-C 中将字符串转换为代码
【发布时间】:2016-10-08 09:27:33
【问题描述】:

我想问一下,如何将包含一段代码的字符串转换为实际可运行的代码:

  int x = 7;
  int y = 9;
  NSString *myCode = @"if(x > y) return x; else return y;";

我需要能够将 myCode 作为实际的 Objective C 代码运行。给出的示例是一个虚拟示例,只是为了说明这个想法。

【问题讨论】:

  • 当您说“运行”时,您的意思是您将解析和评估表达式,还是将其转换为机器码并执行?
  • 我需要能够执行它
  • 您可以根据字符串输入调用(现有)选择器,您可以根据字符串输入向它们传递一些参数,但您不能“即时编译和运行一些任意的 Objective-c 代码”。除非您正在考虑自己的预定义脚本规则和解析器:从您的问题来看,您似乎没有想到这一点。
  • 我需要做的是让用户随时可以编写一些规则的伪代码,并且能够将伪代码变成实际代码并能够应用它。我知道我已经可以设置规则并根据输入选择指定的规则,但我对 smg 的想法更广泛。谢谢你的建议。

标签: objective-c nsstring


【解决方案1】:

因为objective-c不是解释性语言,所以无法通过API实现。

也许可以通过以下步骤来完成

  1. 使用 JavaScript 封装 c 代码

  2. 使用 JSPatch[https://github.com/bang590/JSPatch] 运行代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    相关资源
    最近更新 更多