如果我的iOS 4 iPhone应用程序在iOS 3.2手机上执行,会发生什么?

如果我的iOS 4 iPhone应用程序在iOS 3.2手机上执行,会发生什么?,iphone,ipad,Iphone,Ipad,我想它会崩溃,对吧?如果我开发了一个使用iOS 4 SDK的iPhone应用程序,并且它进入了应用商店,我如何确保它不会被运行旧版本iOS的人下载 提前感谢您的帮助 如果您的项目指定4.0作为目标,那么它甚至不会加载到3.2手机上-没问题 当你向商店发布应用程序时,你需要指定最低操作系统级别和可接受的设备(例如,你不需要在iPod Touch上寻找GPS)。如果应用程序不兼容,则有一个兼容性检查可以防止加载该应用程序。应用程序审批流程(希望)确保您所说的内容实际上是兼容的 如果您以某种方式使用了

我想它会崩溃,对吧?如果我开发了一个使用iOS 4 SDK的iPhone应用程序,并且它进入了应用商店,我如何确保它不会被运行旧版本iOS的人下载


提前感谢您的帮助

如果您的项目指定4.0作为目标,那么它甚至不会加载到3.2手机上-没问题

当你向商店发布应用程序时,你需要指定最低操作系统级别和可接受的设备(例如,你不需要在iPod Touch上寻找GPS)。如果应用程序不兼容,则有一个兼容性检查可以防止加载该应用程序。应用程序审批流程(希望)确保您所说的内容实际上是兼容的

如果您以某种方式使用了设备上不存在的API(因为您在引入该API之前针对某个版本或出于任何其他原因),那么是的,您将由于未知选择器而崩溃

你可以用

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200

要检查目标版本,请执行以下操作。。。第一个数字(3)是主要修订,第三个数字(2)是次要修订。因此,所显示的检查是针对3.2的。

如果您的项目指定4.0作为目标,那么它甚至不会加载到3.2手机上-没问题

当你向商店发布应用程序时,你需要指定最低操作系统级别和可接受的设备(例如,你不需要在iPod Touch上寻找GPS)。如果应用程序不兼容,则有一个兼容性检查可以防止加载该应用程序。应用程序审批流程(希望)确保您所说的内容实际上是兼容的

如果您以某种方式使用了设备上不存在的API(因为您在引入该API之前针对某个版本或出于任何其他原因),那么是的,您将由于未知选择器而崩溃

你可以用

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200

要检查目标版本,请执行以下操作。。。第一个数字(3)是主要修订,第三个数字(2)是次要修订。因此,所检查的是3.2。

< P>而不是使用Adam Eberbach的方法使用编译时预处理器指令来分割代码,考虑使用运行时检查,如<代码>响应寄存器:,使用<代码> NScReasObSncs检查NIL以确定是否存在类,与新框架和库的链接较弱


这将允许您编写一个可以在多个设备上生存的应用程序,而不需要任何代码隔离或单独的二进制文件。

< P>而不是使用Adam Eberbach的方法使用编译时预处理器指令来分割代码,考虑使用运行时检查,如<代码>响应寄存器:< /代码>,使用
NSClassFromString
检查nil以确定类是否存在,以及与新框架和库的弱链接


这将允许您编写一个可以在多个设备上运行的应用程序,而无需任何代码隔离或单独的二进制文件。

没有iOS 3.2手机。iOS 3.2仅适用于iPad。iOS 3.0和3.1适用于iPhone,没有iOS 3.2手机。iOS 3.2仅适用于iPad。iOS 3.0和3.1是针对iPhone的。这是否会导致代码膨胀,或者更糟糕的是,性能降低/提高?我相信性能影响完全可以忽略不计。。。根据你对代码膨胀的定义,我倾向于不同意。当您删除对遗留操作系统的支持时,这里和那里有几行代码可以删除。respondsToSelector是一个非常好的方法,可能比预处理器更好。这是否会导致代码膨胀,或者更糟的是,性能变慢/变重?我相信性能影响完全可以忽略不计。。。根据你对代码膨胀的定义,我倾向于不同意。这里和那里有几行代码,当您删除对遗留操作系统的支持时可以删除。respondsToSelector是一个非常好的方法,可能比预处理器更好。