我如何写上OS 2.0运行,但采用的是3.0功能的优势,如果他们提供iPhone(目标C ++)中的程序?
例如:复制和粘贴(类UIPasteboard)。 不错的功能,但我并不想杀死后向兼容性。 难道我对编译SDK 3节或2节? 如果是后者,我怎么创建UIPasteboard的一个实例,考虑到它不是在标题中声明? 如果是前者,不会OS 2.0在某些C-联动功能造成“未解决的参考”在加载时?
我如何写上OS 2.0运行,但采用的是3.0功能的优势,如果他们提供iPhone(目标C ++)中的程序?
例如:复制和粘贴(类UIPasteboard)。 不错的功能,但我并不想杀死后向兼容性。 难道我对编译SDK 3节或2节? 如果是后者,我怎么创建UIPasteboard的一个实例,考虑到它不是在标题中声明? 如果是前者,不会OS 2.0在某些C-联动功能造成“未解决的参考”在加载时?
编辑你这样的目标构建设置:
建设时,您编译反对基地SDK。 对于在你的基地SDK定义,但在你的部署目标不可用所有的符号,你需要运行时检查添加到您的代码来检查它们的可用性。 例子:
检查UIPasteboard可用:
Class PasteboardClass = NSClassFromString(@"UIPasteboard"); if (PasteboardClass != nil) { // UIPasteboard is available }
检查的具体方法可用:
if ([UITableViewCell respondsToSelector:@selector(initWithStyle:reuseIdentifier:)]) { // ... }
我没有尝试,但我会建议对建筑最近(3.X)SDK版本。 所以,你得到任何的类和方法的定义可能是可用的目标设备上。
而在你的应用程序,你必须检查操作系统发布你的应用程序运行上。 基于目标操作系统上,你必须决定哪些类和方法,你应该使用。 毕竟这是有条件的代码一团糟,大概用了很多额外的代码来提供缺少的功能(对于SQLite而不是使用核心,即数据的直接访问)。 根据我的经验,不应该导致问题,因为大多数类型的信息在运行时被删除。