我有一个关于 iOS 版本和 SDK 版本的问题(实际上是 2 =P)。
想象一下,我使用 SDK 7 构建了一个应用程序,因此我使用了为该版本定义的 api。该应用程序将在较新的 iOS 中运行,例如 iOS8。
想象一下我也在我的应用程序中使用了该方法
- doSomething 会根据操作系统运行不同的代码吗?我的意思是,如果在 iOS 7 设备和 iOS 8 设备上运行该应用程序?
Apple 如何支持前向兼容性?较新的 iOS 是否包含以前 SO 版本的实现?如果不是,为 iOS 6 构建的应用程序如何在 iOS 7 和更新的 iOS 版本上呈现 iOS 6 拟物化外观和感觉?
根据我对大约 4 个不同的 iOS 主要版本的体验,iOS API 有时确实会发生变化,甚至会破坏以前的 API。这种情况在各种情况下不止一次发生:更改 API 的数据类型,导致一些丑陋的 if-else(如果 iOS>=7 执行此操作,否则执行该操作),只是为了确保应用程序不会崩溃。因此,你永远无法 100% 确定下一个 iOS 会向后兼容。顺便说一句:这就是为什么,在每个新的 Xcode 中,您通常看不到以前的 iOS 版本模拟器,因此开发人员会将其 iOS 应用程序的最低版本设置为最新版本,这样用户就会开始看到他们需要更新他们的设备操作系统,因此市场会更快地使用新的 iOS 版本。
至于实现,它的变化更加频繁,一个很好的例子就是不同的 UI 实现(iOS6 与 iOS7 相比)。
希望它能回答您的问题。