如何在 iphone os 2.0 以及 3.0 及以上操作系统中运行我的 iphone 2.0 应用程序
-
13-09-2019 - |
题
我有 iphone,操作系统版本。2.0 我读到,对于应用程序商店,所有应用程序都必须运行 3.0 操作系统。那么我怎样才能使我的应用程序在两个固件中运行。有没有一种方法可以检测操作系统版本是否>3.0,然后运行不同的语句,也可以运行较低版本的语句高于 3.0 操作系统。目前我正在使用这个。
#if __IPHONE_3_0
cell.textLabel.text=cellValue;
[cell.textLabel setFont:[UIFont systemFontOfSize:15.0]];
[cell.textLabel setLineBreakMode:UILineBreakModeTailTruncation];
#else
cell.text=cellValue;
[cell setFont:[UIFont systemFontOfSize:15.0]];
[cell setLineBreakMode:UILineBreakModeTailTruncation];
#endif
它可以在两个固件上运行吗
我想让我的应用程序在 >=3.0 操作系统和低于此版本上运行...请帮助我
我如何检查我的弃用方法的应用程序...我只能将此行视为弃用的cell.text = cellValue;
有什么需要改变的吗?我已经安装了名为 iphone_sdk_3.0__leopard__9m2736__final.dmg 的新 sdk
解决方案
以上您的代码不会在两套操作系统上运行。当您使用#如果语句,你基本上排除代码操作系统的一个版本,该特定版本。换句话说,每个要建立,一个当你定义__IPHONE_3_0和一个版本时,你不这样做,将排除了代号为其他。
你在做什么正在建设两个可执行文件,一个是为__IPHONE_3_0,另一个用于建造! __IPHONE_3_0。
如果你想建立一个可执行的,那就是一个应用程序,使用这两种运行,则需要更换与运行IFS的#如果语句,不编译时间#ifs,如:
if (theOS >= kiPhone3)
....
else
....
您还可以链接在只有3.0,但在运行时框架的可用性测试库,然后跳过调用如果方法不可用。这里你需要使用,一个用于检查,看是否有方法可以不同的调用,以及一个用于如果一个类可用:
Class newClass = (NSClassFromString(@"NewClassName"));
if (newClass != nil)
最后一件事,有SDK比你提到一个更高版本。
祝你好运!
其他提示
有一个 类似的帖子 前一段时间。查看 Apple 的 MailComposer 示例,了解支持 3.0 和 2.x 固件的应用程序示例
如果你建立了针对2.0(或2.1,或者2.2.1等)的SDK,它会在该SDK和任何更新版本运行,除非苹果明确停止该SDK的支持。我看到很多在App Store中说,他们与iPhone OS 2.x或更高版本中运行的应用程序,他们罚款,我的iPhone 3G运行3.1上运行。
在的if-else指令将隐藏从编译器的代码的一部分,所以它不会在两个软件运行。