iOS - 将文本输入视为代码操作

有没有可能将 UITextField 中输入的内容视为代码来执行?比如,我有一个文本框和一个按钮。用户输入一些代码(比如 NSLog(@"hello world")),然后按下按钮。无论用户输入什么,它都被视为代码,并像通常的 .m 文件的一部分一样执行。

所以,这种情况是否可能?

(编辑:有点像 Python 中的输入命令,其中输入可以被视为代码)

如果您需要更多信息,请随时问我,尽管我认为这应该已经涵盖了。

点赞
用户88888888
用户88888888

从技术上讲:是的,这是可能的。但这远非易事。

所以你想要的是:输入一些 Objective-C 代码并在应用程序内部运行。这需要的是:

  1. 嵌入于应用中的 Objective-C 编译器;
  2. 并且拥有运行生成代码的 OS/kernel 权限。

解决问题 #1 的方案可能是将 Clang/LLVM 编译器套件嵌入您的应用程序中(但它很大,有几十兆字节)。然而,1. 要准备好无法将其移植到 iOS(尤其是带有无脑构建系统的 LLVM 和 Clang 的功能交叉工具链 难以移植),2. 并且生成的代码无论如何都不会被签名,因此它不会在官方环境中运行,只能在越狱设备上运行。


如果要为用户提供某种交互式编程功能,则最好尝试将小型脚本语言(例如[Lua](http://lua.org))嵌入到您的应用程序中。

2013-04-29 18:42:36
用户1791179
用户1791179

短而实际的答案是不可以。

Python是一种解释性语言,Objective-C需要先进行编译才能运行,并且在应用程序中不可用编译器。即使有编译器,该代码也无法运行(未签署),而您可能会违反许多应用商店规则。

2013-04-29 19:12:41