这个问题可能很简单。
因此,如果我在新SDK中使用了一些新类,我是否应该假设我的应用只能在具有相同操作系统版本号或更高版本的iPhone上运行?
例如,如果我使用一个类,其文档说该类仅在iOS 5之后存在,我应该假设我的应用程序只能在iOS 5的iPhone上运行吗?
或类文档中的术语iOS 5
仅指SDK,而不是目标部署平台?
答案 0 :(得分:3)
部署目标,iOS和SDK不是相同的概念,但它们是相关的。当您看到iOS5中的方法或类可用时,意味着您需要在您的机器中安装SDK5才能进行编译,并且用户需要在其设备中使用iOS5才能执行它。但是,您可以在其下面部署一个目标(例如iOS4),并且只关注运行时不执行该部分代码。
有很多关于如何做到这一点的详细信息,但简而言之:
如果是方法,请在调用之前检查它是否响应方法:[object respondToSelector:@selector(yourNewMethod)]
如果是类,请在实例化该类所在的对象之前进行检查:NSClassFromString(@"YourNewClass")
。此外,如果该类位于旧部署目标中不存在的新框架中,请记住将其链接为“弱”框架。否则启动时会失败。
当然,在这两种情况下,您都需要为用户提供替代响应。
答案 1 :(得分:0)
术语iOS 5指的是设备上的操作系统。因此,该类只适用于5之后的设备,直到它被弃用。