我有 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指令将隐藏从编译器的代码的一部分,所以它不会在两个软件运行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top