我正在使用Xcode在iOS上开展一个项目。我想要包含一个用C语言编写的库。但我不知道如何在Objective-C中使用C库。 以下是图书馆的链接:https://github.com/bcl/aisparser
有人可以帮助我吗?
答案 0 :(得分:0)
你将以所谓的“名称重整”的形式遇到一个障碍。 C ++以与Obj-C不兼容的方式存储函数名称。
Objective-C没有像C ++一样实现类,所以它不会喜欢它。
解决这个问题的一种方法是实现一组调用C ++函数的简单C函数。保持C函数的数量尽可能低是一个很好的挑战!你最终会得到一个漂亮的紧凑界面! :)
要在C ++文件中声明这些函数,您需要将它们标记为C with:
extern "C" int function_name(char *blob,int number, double foo) {...}
这会禁用标准名称修改。
使用您可以与目标C代码共享的所有这些函数的原型构建头文件。
您将无法以相同的方式传递类(因为您的ObjC代码无法使用它们),但您将能够传递指针(尽管您可能不得不对这些类型撒谎) )。