Преобразовать функцию C в Objective C или альтернативный способ включить библиотеку C? - PullRequest
1 голос
/ 28 марта 2010

Справочная информация:

Я новичок в Objective-C и никогда раньше не касался C. Я пытаюсь включить библиотеку C в свой проект iPhone / iPod Touch и не могу успешно скомпилировать исходный код библиотеки, используя прилагаемые инструкции, поэтому я прибег к включению файлов .h и .c в Xcode. Библиотека предназначена для дат иврита и соответствующих еврейских праздников. Его можно найти здесь: 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;
}

Итак ... я должен конвертировать его или пытаться каким-то образом скомпилировать в соответствующий формат и как так? (Кстати, я не знаю, в каком формате должна быть статическая библиотека или она должна быть статической ... - Я так потерян здесь ...)

Я ценю помощь!

1 Ответ

3 голосов
/ 28 марта 2010

Вы не импортируете файлы реализации. Вы просто компилируете их вместе и включаете соответствующий заголовок, чтобы ваш код знал о объявлениях функций и типов данных.

...