2012-09-11 90 views
2

这个问题可能很简单。xcode - SDK版本与用户iPhone OS版本的关系

因此,如果我在新SDK中使用了一些新类,我是否应该假设我的应用只能在具有相同OS版本号或更高版本的iPhone上运行?例如,如果我使用其文档说该类仅在iOS 5之后存在的类,我应该假设我的应用程序只能在iOS 5的iPhone上运行吗?

或术语iOS 5在类文档中是指只有SDK,而不是目标部署平台?

回答

3

部署目标iOS和SDK的概念并不相同,但它们是相关的。当你看到一个方法或类在iOS5中可用时,这意味着你需要在你的机器中安装一个SDK5以编译它,并且用户需要在他们的设备中安装iOS5才能执行它。但是,您可以在它下面有一个部署目标(例如iOS4),只需注意运行时就不要执行那部分代码。

有很多的如何做到这一点在那里的详细信息,但在短暂的:[object respondToSelector:@selector(yourNewMethod)]

  1. 如果它是一个方法,调用它回应的方法前检查

  2. 如果它是一个类,请在实例化该类所在的对象之前检查:NSClassFromString(@"YourNewClass")。此外,如果该类处于旧部署目标中不存在的新框架中,请记住将其作为“弱”框架链接。否则在启动时会失败。

当然,在这两种情况下,您都需要给用户一个替代的响应。

0

术语iOS 5是指设备上的操作系统。所以,该类只能在5号设备上工作,直到它被弃用。

+0

感谢您的回答以及顺利通过'666'的高分。 –

+0

试图摆脱它 – CBredlow