2011-04-25 69 views
1

iOS SDK正在升级,并且会出现一些新技术,即块是新技术。关于iOS目标版本和SDK版本

所以问题是如果基于“块”的实现也可以分发到较低的目标版本或更旧的iPhone(3G或第一代)?

如何应对这些问题?

回答

0

处理这类问题的常用方法是在运行时根据当前操作系统版本有选择地启用功能。但是,这可能非常复杂。

  • 查询当前的操作系统版本在运行时
  • 使用弱链接
  • 动态创建类
  • 呼叫只有在新的类存在

例如新功能:

Class optionalClass = NSClassFromString(@"NSArtificialIntelligence"); 
if (optionalClass) { 
    id optionalObj = [[optionalClass alloc] init]; 
    // ... 
} 

以下文档离子详细描述了该过程:

您明确提到的块。此功能需要编译器和Objective-C运行时的支持,因此在旧系统上根本不可用。

+0

谢谢您的回答。块只是一个例子。开发人员希望使用最新的技术,但该应用程序希望为最低的SDK安装,尽可能多的设备。是的,这是冲突的。要更深入地了解,处理此类问题的任何良好做法?再次感谢 – Forrest 2011-04-25 08:19:01