例如我有
NSString *string = @"return sharedInstance;";
我有一个班级方法
+ (id)sharedInstance;
我可以将该字符串转换为普通代码并在我的方法中使用它吗?这对调试非常有用。假设我有一个方法,我想测试一些代码(让它成为简单的返回值,是否可能?)我可以只为该方法编写代码并在运行时测试新代码。
答案 0 :(得分:6)
iOS上的Objective C是一种编译语言;在运行应用程序之前,代码被解释并转换为机器代码。以这种动态方式运行目标C是不可能的。为此,你需要一种动态的语言。
答案 1 :(得分:5)
你所描述的并非完全可能。但是对某些事情有支持,例如,用字符串实例化类和调用方法(理论上)的能力:
NSClassFromString
允许您根据传递的字符串实例化类。
NSSelectorFromString
允许您根据传递的字符串调用或“调用”方法。
可以在运行时动态确定字符串。
根据您的评论,这显然不是您感兴趣的内容(尽管事实上我认为它实际上解决了您的问题)。您可以做的一件事(它不是原生的Obj-C,但我认为它与某些评论相关)是将JavaScript
注入UIWebView
。