这个问题可能很简单。
那么,如果我在新 SDK 中使用了一些新类,我是否应该假设我的应用只能在具有相同操作系统版本号或更高版本的 iPhone 上运行?
例如,如果我使用的类的文档说该类仅在 iOS 5 之后存在,我是否应该假设我的应用程序只能在装有 iOS 5 的 iPhone 上运行?
还是类文档中的术语iOS 5 仅指SDK,而不是目标部署平台?
Best Answer-推荐答案 strong>
部署目标,iOS和SDK不是同一个概念,但它们是相关的。当你看到一个方法或一个类在 iOS5 中可用时,这意味着你需要在你的机器中安装一个 SDK5 才能编译它,并且用户需要在他们的设备中安装一个 iOS5 才能执行它。但是,您可以在其下方有一个部署目标(例如 iOS4),并注意运行时不要执行该部分代码。
那里有很多关于如何做到这一点的详细信息,但简而言之:
如果是方法,在调用前检查它是否响应方法:[object respondToSelectorselector(yourNewMethod)]
如果是类,在实例化对象之前检查类是否存在:NSClassFromString(@"YourNewClass") 。此外,如果该类位于旧部署目标中不存在的新框架中,请记住将其链接为“弱”框架。否则启动时会失败。
当然,在这两种情况下,你都需要给用户一个替代的响应。
关于iphone - xcode - SDK 版本与用户 iPhone OS 版本的关系,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/12372678/
|