使用Objective-C根据Xcode中的可用性有条件地链接框架的最佳方法

Kel*_*ude 6 frameworks objective-c ios

我正在开发一个基于Cocoa touch的Objective-c框架,并且正在研究用于解析数据的其他框架,包括JSON和XML.

我希望开发人员能够轻松地使用开箱即用的框架,并且想知道有条件地包含第三方框架的最佳方式是什么.我想在信用到期时给予信任,所以我不想将其他项目包含在发行版中,但我希望开发人员能够添加一个框架(甚至只是一堆类),如SBJson或触摸XML并使用我的代码库查看包含的代码库,并将其与其提供的附加功能一起使用.通过某种配置文件或项目设置启用框架也是一种选择,但不太理想.

  1. 使用编译器设置执行此操作的最佳方法是什么?我已经看到很多开发人员将包含的框架从"Required"切换到"Optional",但是我不认为SBJson或Touch XML是使用objective-c框架包(.framework)或C编译或实现的.静态库(.a)因此无法利用这一点.

  2. 如何在代码中有条件地实现它?例如,SBJson的标头是通过#import "SBJson.h"编译器指令导入的 ,但如果找不到所需的标头,则会失败.

CiN*_*iNN 3

您可以包含 .h,但是当使用其中的对象时,您需要使用 NSClassFromString 调用它