NSString *string = @"return sharedInstance;";
我有一个类的方法
+ (id)sharedInstance;
能否在字符串转换为明码,并在使用它我方法?这对调试非常有用。假设我有一个方法,我想测试一些代码(让它是简单的返回值,是否有可能?)我可以为该方法编写代码并在运行时测试新代码。
NSString *string = @"return sharedInstance;";
我有一个类的方法
+ (id)sharedInstance;
能否在字符串转换为明码,并在使用它我方法?这对调试非常有用。假设我有一个方法,我想测试一些代码(让它是简单的返回值,是否有可能?)我可以为该方法编写代码并在运行时测试新代码。
你所描述的不完全可能。但支持某些事情,例如,能够实例化类并使用字符串调用方法(理论上):
NSClassFromString
允许您基于传递的字符串实例化类。
NSSelectorFromString
允许您根据传递的字符串调用或“调用”方法。
该字符串可以在运行时动态确定。
根据你的意见,这显然不是你感兴趣的(尽管事实上我认为它确实解决了你的问题)。你可以做的一件事(它不是本地Obj-C,但我认为这是相关的一些评论)是将JavaScript
注入UIWebView
。
那不是我想要的,我知道这个 – s6luwJ0A3I 2013-02-16 12:43:58
你想要什么是不可能的。 – isaac 2013-02-16 12:47:27
嗯....足够公平的,什么是这个最好的选择 – s6luwJ0A3I 2013-02-16 12:50:18
iOS上的Objective C是一种编译语言;在运行应用程序之前,代码被解释并翻译成机器代码。以这种动态方式运行目标C是不可能的。为此,你需要一种动态语言。
你想在运行时编译objc代码并执行它们?更好地查看使用脚本语言的选项。这就是即时通讯使用:https://github.com/xlc/CocoJS – 2013-02-16 12:41:19
你在说什么脚本语言?例子? – s6luwJ0A3I 2013-02-16 12:42:12
太棒了!那么我可以在运行时编辑.js文件吗? – s6luwJ0A3I 2013-02-16 12:47:31