2013-02-16 67 views
5

比如我有是否有可能的NSString转换为纯目标C代码

NSString *string = @"return sharedInstance;"; 

我有一个类的方法

+ (id)sharedInstance; 

能否在字符串转换为明码,并在使用它我方法?这对调试非常有用。假设我有一个方法,我想测试一些代码(让它是简单的返回值,是否有可能?)我可以为该方法编写代码并在运行时测试新代码。

+0

你想在运行时编译objc代码并执行它们?更好地查看使用脚本语言的选项。这就是即时通讯使用:https://github.com/xlc/CocoJS – 2013-02-16 12:41:19

+0

你在说什么脚本语言?例子? – s6luwJ0A3I 2013-02-16 12:42:12

+0

太棒了!那么我可以在运行时编辑.js文件吗? – s6luwJ0A3I 2013-02-16 12:47:31

回答

5

你所描述的不完全可能。但支持某些事情,例如,能够实例化类并使用字符串调用方法(理论上):

NSClassFromString允许您基于传递的字符串实例化类。

NSSelectorFromString允许您根据传递的字符串调用或“调用”方法。

该字符串可以在运行时动态确定。

根据你的意见,这显然不是你感兴趣的(尽管事实上我认为它确实解决了你的问题)。你可以做的一件事(它不是本地Obj-C,但我认为这是相关的一些评论)是将JavaScript注入UIWebView

+0

那不是我想要的,我知道这个 – s6luwJ0A3I 2013-02-16 12:43:58

+0

你想要什么是不可能的。 – isaac 2013-02-16 12:47:27

+0

嗯....足够公平的,什么是这个最好的选择 – s6luwJ0A3I 2013-02-16 12:50:18

6

iOS上的Objective C是一种编译语言;在运行应用程序之前,代码被解释并翻译成机器代码。以这种动态方式运行目标C是不可能的。为此,你需要一种动态语言。

相关问题