背景:
我是 Objective-C 的新手,之前从未接触过 C。我试图在我的 iPhone/iPod Touch 项目中包含一个 C 库,但我无法使用包含的说明成功编译该库的源代码,因此我求助于在 Xcode 中包含 .h 和 .c 文件。该库用于希伯来日期和相应的犹太节日。可以在这里找到:http://sourceforge.net/projects/libhdate/
我似乎无法将 .c 文件导入到我的实现文件中。我可以导入 .h 文件。当我尝试使用 #import "file.c"
时,file.c 是 XCode 中的一个文件,它不起作用。为什么不?
我考虑过用 Objective-C 重写函数,尽管只是我需要的函数而不是整个库。
如何使以下 C 函数在 Objective-C 中工作?是否还有其他需要包含/重新编码/编译的内容?为何如此?我几乎可以肯定缺少某些东西,但我不确定是什么。
代码:
int hdate_get_omer_day(hdate_struct const * h)
{
int omer_day;
hdate_struct sixteen_nissan;
hdate_set_hdate(&sixteen_nissan, 16, 7, h->hd_year);
omer_day = h->hd_jd - sixteen_nissan.hd_jd + 1;
if ((omer_day > 49) || (omer_day < 0))
omer_day = 0;
return omer_day;
}
所以...我应该转换它,还是尝试以某种方式编译成合适的格式,如何转换? (顺便说一下,我不知道静态库应该采用什么格式,或者它是否应该是静态的...-我在这里迷路了....)
感谢您的帮助!
最佳答案
您不导入实现文件。您只需将它们一起编译并包含适当的 header ,以便您的代码了解函数和数据类型声明。
关于将 C 函数转换为 Objective C 或包含 C 库的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2532052/