将 C 函数转换为 Objective C 或包含 C 库的替代方法?

标签 c objective-c iphone import libraries

背景:

我是 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/

相关文章:

c - 何时使用 GBaseInitFunc

c - 为什么没有为此代码生成严格别名警告?

python - 使用 Python 的 CFFI 并排除系统头文件

objective-c - iOS如何通过一个循环将多个事件添加到日历

objective-c - 如何在 cocoa (osx)中检测顺时针/逆时针鼠标/光标拖动?

iPhone键盘安全,

ios - AFHTTPRequestOperationManager 是否在 operationQueue 上运行请求?

c - 获取一个数字数组,然后仅显示不同的数字

ios - Youtube iOS Player Helper 库不起作用

ios - View 隐藏时如何禁用 UISlider 交互?