Tag: 后期绑定

在Objective-C中运行时检测并使用可选的外部C库

我正在构build一个iPhone开发人员可以在他们的项目中包含的SDK。 它以编译的“.a”forms提供,没有源代码。 我们打电话给我的SDK“AAA”。 他的项目中的客户(我们称之为“BBB”)除了使用AAA之外,还可能使用称为“CCC”的第三方库,该库也是预编译的,是闭源的。 我不卖CCC,这是一个不同的公司。 我的SDK(AAA)可以select使用CCC来改进产品,使用这些第三方function。 例如,让我们说CCC是一个安全的SDK来encryption的东西。 AAA不需要CCC,但如果客户select将CCC纳入其项目中,AAA也将更安全。 现在这里是一个额外的棘手的部分 – CCC库,纯C代码,由C结构和C函数 – 没有任何面向对象。 问题是: 我如何编译我的AAA SDK以使用CCC中的函数/结构体,而不在我的项目中包含CCC(未经法律允许,并且不希望跟上版本更新)。 我如何检测客户是否在他的项目中有CCC,只有在可用时才使用这些额外function?