3

我被要求向应用程序添加 3.0 功能(媒体选择器)。

但该应用程序必须继续在 2.2.1 设备上运行。(禁用该功能)

我如何编译它,使其在 2.2.1 上运行,而不会出现编译器错误,包括 3.0 功能?

根据 MailComposer 示例中的说明,我已将目标设置设置为 2.2.1,将基本 SDK 设置为 3.1.2。

我看过弱链接,但这显然只是链接器步骤,对编译器错误没有任何作用。

4

2 回答 2

3

要绕过编译器错误,只需将 C 函数声明为 extern(Objective-C 函数将生成警告,但不会产生编译器错误)。正如您所发现的,链接器错误可以通过弱链接来修复。

于 2010-01-13T22:51:55.640 回答
0

我通常所做的只是将我需要的类的定义从 3.0 SDK 复制到我的项目中,然后我调用这些方法,就好像什么都没发生一样。唯一棘手的部分是实例化,为此使用:

MyCopiedClass object = [[NSClassFromString(@"MyCopiedClass") alloc] init];
于 2010-01-14T01:17:32.527 回答