5

例如我有

NSString *string = @"return sharedInstance;";

我有一个类方法

+ (id)sharedInstance;

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

4

2 回答 2

6

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

于 2013-02-16T12:47:24.100 回答
5

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

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

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

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

根据您的评论,这显然不是您感兴趣的(尽管我认为它确实解决了您的问题)。你可以做的一件事(它不是原生的 Obj-C,但我认为考虑到一些评论是相关的)是注入JavaScript一个UIWebView.

于 2013-02-16T12:43:01.290 回答