在2.2.1设备上运行具有3.0功能的iPhone应用程序

时间:2010-01-13 22:49:54

标签: iphone iphone-sdk-3.0 backwards-compatibility

我被要求在应用中添加3.0功能(媒体选择器)。

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

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

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

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

2 个答案:

答案 0 :(得分:3)

要解决编译器错误,只需将C函数声明为extern(Objective-C函数将生成警告,但没有编译器错误)。链接器错误可以通过弱链接来修复,因为你已经解散了。

答案 1 :(得分:0)

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

MyCopiedClass object = [[NSClassFromString(@"MyCopiedClass") alloc] init];