搜尋

首頁  >  問答  >  主體

ios7 - iOS如何限制使用SDK的版本?

比如我以前在 iOS7 版本下开发了一个 APP,一切正常。

后来苹果发布了 iOS8,由于 iOS8 UIAlertController 替代了 UIActionSheet 和 UIAlertView,造成程序在 iOS8 的设备中,UIActionSheet 无法正常使用。

那么问题有四个:

1、我该如何强制 APP 在真机上,以 iOS7 模式运行这个程序?理论上应该可以吧,我记得以前有些程序虽然我用的 iOS7 设备,但是 APP 界面还是 iOS6 的风格,绝对的老程序。

2、如果我更新了代码,用 UIAlertController 修复了问题,那么如果真机是 iOS7 设备,会不会有新的问题出现?比如 iOS7 根本不知道 UIAlertController 是啥导致崩溃?

3、对于一个老程序来说,并没有过多考虑屏幕尺寸的问题, iPhone4、4S、5、5S 都一样处理的,如果这个程序不做修改直接放到 iPhone6 & iPhone6 Plus 上运行,会发生什么情况?可以完美适配么?

4、假如,即使真机是 iOS8 也可以完美运行 iOS7 SDK 写的程序(问题1上说的约束SDK、运行环境?),并且假如我按照 iPhone5S 的尺寸,在 iPhone6 Plus 上也能完美运行。我是不是以后都可以只写 iOS7 SDK + iPhone5S 的代码,然后指望 iPhone6 Plus 自动适配屏幕,然后以后出 iOS9、iOS10 都不会出 BUG ?

iOS 开发新手,跪求大神作答。谢谢。

ringa_leeringa_lee2769 天前665

全部回覆(1)我來回復

  • 怪我咯

    怪我咯2017-04-17 13:57:55

    1. 不能「強制使用者」。即使能,也不要這樣做。蘋果非常鼓勵開發者盡快適應新的系統,並拋棄舊的系統。倒是可以用舊版的 SDK 編譯打包,如果你一直沒有升級 Xcode 的話。

    2. 可能會有問題,取決於你使用的 API 和類別。如果你用的 API 或類別標示是NS_ENUM_AVAILABLE_IOS(8_0),那麼在 7.0、7.1 系統上就會crash。為了同時適應這兩個系統,你可以判斷系統版本,或是用respondsToSelector:@selector(……) 判斷應該使用新 or 老 API。

    3. 如果不加 LaunchScreen,會進入相容模式,直接拉伸。效果肯定是不完美的,就是字號、圖片全都拉大了,但也湊合能看。最好專門做適配。如果加了 LaunchScreen,能否適配就看你的實現方式了。

    4. 不要想了。以新系統為主,與舊系統相容。

    回覆
    0
  • 取消回覆