【发布时间】:2012-12-11 04:15:44
【问题描述】:
我正在开发一个基于 Cocoa touch 的 Objective-c 框架,并且正在研究其他用于解析 JSON 和 XML 数据的框架。
我希望开发人员能够轻松地使用我的框架开箱即用,并且想知道有条件地包含第三方框架的最佳方式是什么。我想在信用到期时给予信用,所以我不想将其他项目包含在发行版中,但我希望开发人员能够添加一个框架(甚至只是一堆类),如 SBJson 或触摸 XML 并让我的代码库查看包含的代码库并将其与它提供的附加功能一起使用。通过某种配置文件或在项目设置中启用框架也是一种选择,但不太理想。
使用编译器设置执行此操作的最佳方法是什么?我有 看到很多开发人员从 “必需”到“可选”,但我不认为 SBJson 或 Touch XML 被编译成或使用objective-c 实现 框架包 (.framework) 或 C 静态库 (.a),因此 将无法利用这一点。
如何在代码中有条件地实现这一点?例如 SBJson 的标头是通过
#import "SBJson.h"编译器导入的 指令,但如果找不到所需的标头,这将失败。
【问题讨论】:
-
“最简单”的方法是检查标头包含保护(您知道,当您制作 c 标头时,Xcode 将包含整个 #define HAS_MYHEADER_DECL 内容),并基于此进行一些条件编译。当然,这根本不可靠。
标签: objective-c ios frameworks