在專案中混合 C 和 Objective-C
在同一個專案中混合 C 和 Objective-C 是可行的,但需要採取一些預防措施。若要從 C 呼叫 Objective-C 方法,您可以使用標準 C 包裝函數,該函數為非 Objective-C 程式碼提供 C 風格介面。
C 包裝函數方法
建立以下檔案:
-
MyObject-C-Interface.h: 宣告C包裝函數MyDoSomethingWithObjectSomethingWithObjectSomethingWithObjectSomethingWithObjectDoSomethingWithObjectSomethingWithObjectSomethingWithObjectSomethingWithObjectSomethingWithObjectSomethingWith.
- MyObject.h:定義您的 Objective-C 類別以及要從 C 呼叫的成員函數。
- MyObject.mm: 實作包裝函數MyObjectDoSomethingWith 和Objective-C 成員function.
- MyCPPClass.cpp:
MyCPPClass.cpp:
MyCPPClass.cpp:
包含包裝函數標頭並實作您的C 類,該類別使用包裝函數呼叫Objective-C 方法。
包裝函數可讓您使用C 語法從C 呼叫Objective-C 方法,而無需在C 中包含Objective-C 標頭
- PIMPL 模式方法混合C 和Objective-C 的另一種方法是使用PIMPL(指向實現的指標)模式:
-
MyObject -C-Interface.h:
定義PIMPL 的介面(實作) class.-
MyObject.h:
聲明您的Objective-C 類,現在委託給PIMPL 類別。 -
MyObject.mm:
實作PIMPL 類別和 Objective-C 類別方法,呼叫對應的 PIMPL方法。 -
MyCPPClass.h:
包含 PIMPL 介面並定義 C 類,該類別使用包裝器函數呼叫 PIMPL 方法。
MyCPPClass。 cpp:
實作你的 C 類,它使用 PIMPL 包裝函數來呼叫 Objective-C方法。
這個方法讓您的 Objective-C 實作保持私有,以便日後更容易變更或交換。 請記住包含必要的標頭並使用正確的語法確保C和Objective-C之間的無縫整合。
以上是如何在我的專案中無縫整合 C 和 Objective-C?的詳細內容。更多資訊請關注PHP中文網其他相關文章!