2011-05-15 55 views
0

我有幾個課程,我寫的處理數字有單位透明,就好像他們只是整數或浮點數。簡而言之:如何在xcode的Objective-C項目中使用我的自定義類型(C++)?

SI_Term speed(4, "mph"); 
SI_Term distance(10000, "feet"); 
SI_Term time = distance/speed; 
std::cout<<time.string(); 

並且所有主要的操作符都被重載以這種方式工作。花了相當多的工作,所以我想在我的ObjC iPhone應用程序中使用C++類。我試圖用.h和.mm擴展名添加它們到我的xcode項目中,但似乎並沒有將它們視爲C++文件。 (不會找到任何STL標頭,語法錯誤,我聲明一個類或任何地方)。

新信息: 嘗試.mm和.h擴展,錯誤: 在.h文件中: namespace DA和只是一切涉及到C++代碼(約40錯誤的所有此消息)給我expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

對於所有C++文件中的#include <*>實例,我也得到*: No such file or directory

我確定它的某種簡單的修復,但.mm和.h是不夠的。

更新: 發現將源代碼複製並粘貼到新文件似乎工作。 mm文件(或cpp文件)編譯。 h文件雖然不起作用,但它會在任何出現C++特定代碼時拋出上述錯誤。

謝謝!

+1

[在XCode中使用C++與Objective-C](http://stackoverflow.com/questions/2683101/use-c-with-objective-c-in-xcode) – 2011-05-15 01:43:11

+0

請提供更多詳細信息;確切的錯誤返回等 – 2011-05-15 02:41:34

+0

@Jesse_Beder我同意這是幾乎相同的問題,但平臺現在Xcode4似乎有足夠的差異,我不能使用該問題的正確答案來解決我的問題。 – 2011-05-15 02:47:00

回答

2

您可能會在您的.m文件之一中包含(或導入)您的h文件。那些需要重新命名爲.mm。

最後,您可能會將所有.m fikes命名爲.mm。順便說一下,cpp文件可以簡單地保持cpp。沒有理由重新命名它們。

+0

你明白了。我只需要讓我的項目中的所有文件都是mm而不是m。 – 2011-05-17 21:28:07

1

不知道你得到的錯誤是什麼,而不是將你的文件擴展名爲.hpp和.cpp的文件添加到你的項目中,我會將頭文件的擴展名改爲.h,而擴展名將.cpp文件轉換爲.mm或.M文件,以便Xcode將它們識別爲Objective-C++文件,並對其進行適當編譯。

相關問題