2014-02-21 43 views
0

我一直在學習C++和SFML很長一段時間,並且非常喜歡語言和庫,因爲它對我很好。我對製作iPhone應用感興趣,我認識到它使用Objective-C。在Objective-C項目中使用C++代碼

無論如何,我的問題是,有沒有辦法讓我在Objective C中調用C++代碼(使用SFML)。因此,雖然該程序可以在iPhone上工作,但實際代碼主要是用C++編寫的?

對不起,如果這不是....描述性不夠,如果你需要更多的澄清,隨時問!

在此先感謝!

+0

雖然您可以在iOS項目中輕鬆使用C++代碼,但沒有C++版本的iOS類,因此您最終可能會得到很多Objective-C,而不是能夠「主要以C++」編寫代碼。 – Arkku

回答

2

是的。實際上,你可能會使用Objective-C++。用「.mm」擴展名替換「.m」擴展名,編譯器將它們編譯爲Objective-C++。甚至有關於它的Wikipedia article。您也可以在代碼中使用常規的C++源文件,並在這種情況下從Objective-C類中調用它們。如果您對此有更具體的疑問,請隨時提問。

+0

太棒了!謝謝您的幫助。那麼使用像SFML這樣的外部庫怎麼樣?會造成任何問題或可能的障礙嗎? – Connor

+3

當使用Obj-C++時,認爲最好的做法是隻使用它來創建一個你正在做什麼的目標包裝,然後儘可能地使用Obj-C。 請注意,Obj-C++由其實現擴展名(.m/.mm)表示。如果你創建一個Obj-C++包裝器,你仍然可以#從Obj-C中導入它的接口。在您的項目Obj-C++中完成所有任務只是因爲有一部分代碼需要它。 – karwag

+0

好吧,這是有道理的,我認爲效率低下會阻礙。感謝你們兩位,我的問題得到解答! – Connor