我已经制作了一个通用的 iPhone/iPad 应用程序(仅从 iPhone 转换而来),但在未来的版本中,我将大量切换到仅限 iOS 4 的功能。
对于我的应用程序的下一次更新,我可以只更新 iPhone 版本吗?
由于 iPad 运行 iOS3.2,您的代码必须同时处理两者。
if ([[UIDevice currentDevice].systemVersion isEqualToString:@"4.0"]) {
[self doOs4Stuff];
} else {
[self doOs3Stuff];
}
尽管您必须小心使用 4.0 特定的 API,但要使用一些技巧来加载类,NSClassFromString()
以防止它在较旧的操作系统版本上崩溃。
我的示例也可以使用更强大的版本检查,例如,可以解析字符串以测试主要版本是“4”还是“3”。
您必须更新这两个应用程序,因为它们被捆绑到一个二进制文件中。但是,使用条件编码(例如if !(UIUserInterfaceIdiom() == UIUserInterfaceIdiomPad) {
- 请注意,我总是像在 OS 3.1.3 或更低版本上那样检查 iPhone/iPod Touch,它不会返回任何内容),您可以让它只有 iPad 版本不同。
至于反转使其通用 - 进入您的项目和目标设置,并将“目标设备条目”更改为 iPhone 或 iPad。升级目标的选项应该再次出现。