iphone – 使用iOS 5功能,而不会破坏向后兼容性
发布时间:2020-12-14 20:05:12 所属栏目:百科 来源:网络整理
导读:我的应用程序目前是针对最新的iOS 4.x SDK进行编译的.一旦iOS 5.0 SDK出来了,是否可以在我的应用程序中使用新的iOS 5.0 SDK功能,并且在iOS 4设备上运行(但使用新功能的部件已禁用)? 解决方法 为了回答这个问题,Objective-C运行时是完全反映的,这意味着你可
我的应用程序目前是针对最新的iOS 4.x SDK进行编译的.一旦iOS 5.0 SDK出来了,是否可以在我的应用程序中使用新的iOS 5.0 SDK功能,并且在iOS 4设备上运行(但使用新功能的部件已禁用)?
解决方法
为了回答这个问题,Objective-C运行时是完全反映的,这意味着你可以查询一个对象支持的方法(通过respondToSelector :),并在运行时通过NSClassFromString获取类名. iOS二进制还支持与框架的弱联系的概念,这意味着框架将被加载,如果它是可用的,但如果框架不可用(如默认行为),那么您不认为它是一个致命错误.
这意味着当Apple发布新版本的操作系统时,您可以编写在最新版本的操作系统上使用新功能的代码,但如果新功能是新的API,则可以正常运行. 苹果有时也会提供新的SDK功能,而不是新的API,例如Clang静态分析器被添加到Xcode中.由于这些功能通常不需要任何运行时支持,因此它们完全可用. iOS 5有一点独特之处,因为苹果公司致力于LLVM项目,这表明ARC中有一些新的编译时功能依赖于一些运行时支持.所以他们将不可用,如果他们确实在苹果计划分发它们的工具. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |