2012-07-29 43 views
0

我很抱歉,如果這是一個愚蠢的問題,或者如果它沒有意義。我之前編寫過一些Objective-C代碼,但我不太熟悉爲OS X或iOS編寫代碼;我幾乎是一個新手。目前,我試圖將OS X中的項目移植到iOS中。該項目編譯爲一個框架,其他OS X項目可以使用。iOS靜態庫是否可以包含類/接口,可以通過使用該庫的iOS代碼使用/實現?

我正在嘗試爲iOS做類似的事情。我知道iOS不支持包含dylib的Frameworks,並且解決方案是創建一個靜態庫。但是,OS X Framework有幾個實現代碼使用,擴展或實現的類(在.m文件中)。我所見過的所有靜態庫例子似乎都定義了一個頭文件,其中包含一些可以編譯爲靜態庫的函數。

是否有可能在靜態庫內有類,iOS代碼可以使用?另外,如何判斷代碼是否使用動態庫?

+0

您的斷言並非完全正確。 iOS支持框架,它們不能包含'dylib's。那裏非常重要的區別。 – 2012-07-29 19:29:27

+0

@ RichardJ.RossIII感謝您的澄清!就像我說的,我是一個新手。如何判斷我要移植的代碼是否使用動態庫? – 2012-07-29 19:36:49

回答

2

是的,靜態庫可以包含Objective-C類。

在某些情況下,您需要將選項傳遞給鏈接器以強制它包含靜態庫中定義的所有類和類別。請參閱http://developer.apple.com/library/mac/#qa/qa1490/_index.html

+0

Richard對我的問題發表了評論,並表示如果它包含動態庫,我無法將其轉換。我知道該項目使用第三方庫。那些被認爲是動態庫嗎? – 2012-07-29 19:41:34

+0

您將無法在iOS上使用動態或靜態的任何OS X庫。您將需要這些庫的iOS版本,並且如果第三方供應商不提供它們,並且它們的源代碼不可用,那麼您將無法使用它們。 – 2012-07-29 19:50:06

相關問題