背景:將C函數轉換爲Objective C還是包含C庫的替代方法?
我是新來的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中編寫函數,儘管只是我需要的函數而不是整個庫。
如何在Objective-C中使以下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;
}
所以......我應該轉換它,或者試圖以某種方式來編譯,以適當的格式和怎麼做的? (順便說一下,我不知道靜態庫應該採用什麼格式,或者它應該是靜態的... - 我很迷茫......)
我很感謝幫助!
那麼,請您詳細說明如何使用庫?這是否意味着我可以從Objective c中開始調用C函數? – Moshe 2010-03-28 06:03:19
顯然如此。我需要弄清楚這個論點的正確格式,我很樂意去... – Moshe 2010-03-28 06:11:07