是否可以将NSString转换为普通的Objective C代码

时间:2013-02-16 12:38:02

标签: iphone ios objective-c xcode nsstring

例如我有

NSString *string = @"return sharedInstance;";

我有一个班级方法

+ (id)sharedInstance;

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:5)

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

NSClassFromString允许您根据传递的字符串实例化类。

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

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

根据您的评论,这显然不是您感兴趣的内容(尽管事实上我认为它实际上解决了您的问题)。您可以做的一件事(它不是原生的Obj-C,但我认为它与某些评论相关)是将JavaScript注入UIWebView