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

时间:2013-04-29 18:35:47

标签: ios objective-c lua

是否可以将UITextField的输入作为代码进行操作?例如,我有一个文本字段和按钮。用户输入一些代码(例如NSLog(@"hello world")),然后按下按钮。无论用户输入什么都被视为代码,并且操作就像通常的.m文件的一部分一样。

那么,这可能吗?

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

如果您需要更多信息,请询问,但我认为应该覆盖它。

2 个答案:

答案 0 :(得分:6)

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

所以你想要的是:从app中输入一些Objective-C代码并使其运行。需要做的是:

  1. 应用程序中嵌入的Objective-C编译器;
  2. 操作系统/内核的权限,以运行生成的代码。
  3. 问题#1的解决方案可能是在您的应用程序中嵌入Clang / LLVM编译器套件(但它很大,几十兆字节)。但是,1。准备好无法将其移植到iOS(它是来移植功能性交叉工具链,尤其是使用LLVM和Clang的无脑构建系统),2。生成的代码无论如何都不会被编码,所以它不会在官方环境中运行,它只会在越狱设备上运行。


    如果您想为用户提供某种交互式编程功能,最好尝试将Lua等小型脚本语言嵌入到您的应用中。

答案 1 :(得分:0)

简短而实用的答案,不。

Python是一种解释型语言,需要首先编译objective-c才能运行,并且在应用程序中没有可用的编译器。即使您有一个编译器,该代码也无法运行(它没有签名),您可能会破坏许多appstore规则。