2013-10-03 78 views
1

有沒有辦法用C++類包裝Objective-C對象?有沒有辦法用C++類包裝Objective-C對象

我希望能夠控制一個Objective-C類與C++

+1

取決於你的意思是「換行」。 –

+0

有一個C++類,它內部有一個Obj-C對象,C++可以與之通信 –

+0

你可以在其中有一個C++類,其中包含一個Objective-C *對象指針*。使用Objective-C++(.mm文件),您可以從C++代碼調用Objective-C對象的方法。一個小小的歌曲和舞蹈可能需要將指針「橋接」到C++對象中。 –

回答

1

是的,您可以使用Objective-C++選項來使兩種語言在相同的翻譯中使用。 ObjC++源文件的擴展名是.mm。 Xcode,GCC和Clang多年來一直支持這一點。

class Wrapped { NSObject * object; }; 

您也可以使用普通id,這是在objc頭宣佈一個C兼容型 - 那麼你可以使用你的包裝在C++(無ObjC需要)。

class Wrapped { id object; }; 
+1

但是你需要Objective-C++來實際使用這個對象。 –

+0

@HotLicks呵呵。只有在需要發送消息時纔有用。真的,你*可以*使用C或asm的消息:p當然,我不推薦這樣做,但更喜歡id的更常見的情況是在實現中隱藏消息,以便避免暴露ObjC鍵入到C++源代碼 - 編譯ObjC++是資源密集型的。在某些情況下,它有助於使用'id'來減少依賴性,編譯時間並避免編譯爲ObjC++。更經常的是,最好保存類型,並用ObjC++構建。 – justin

+0

或者,使用Objective-C++編寫一個包裝器。 –

1

也許你可以使用的Objective-C++?

相關問題