我被要求在应用中添加3.0功能(媒体选择器)。
但该应用必须继续在2.2.1设备上运行。 (禁用此功能)
如何编译它,使其在2.2.1上运行,而不会出现编译器错误,包含3.0功能?
根据MailComposer示例中的说明,我将目标设置设置为2.2.1,将基本SDK设置为3.1.2。
我看过弱链接,但这显然只是针对链接器步骤而且对编译器错误没有任何作用。
答案 0 :(得分:3)
要解决编译器错误,只需将C函数声明为extern(Objective-C函数将生成警告,但没有编译器错误)。链接器错误可以通过弱链接来修复,因为你已经解散了。
答案 1 :(得分:0)
我通常做的是将我需要的类的定义只使用我关心的3.0 SDK中的方法复制到我的项目中,然后我将这些方法调用为好像什么也没发生。唯一棘手的部分是实例化,为此使用:
MyCopiedClass object = [[NSClassFromString(@"MyCopiedClass") alloc] init];