2012-01-25 91 views

回答

7

請參閱教程https://web.archive.org/web/20111013023821/http://cocoadev.com/index.pl?HowToCreateTollFreeBridgedClass。基本上,你需要創建一個C結構,它具有與obj-c相同的大小和佈局。還有一些時髦的東西必須做正確實施保留/釋放。

+0

cocoadev.com似乎沒有更多,有任何更新的鏈接? –

+0

網絡歸檔版本:https://web.archive.org/web/20111013023821/http://cocoadev.com/index.pl?HowToCreateTollFreeBridgedClass – kuba

+0

此標記爲刪除,因爲它不包含必要的細節來解決答案本身的問題。您能否編輯此答案,以便用戶不需要按照鏈接(或鏈接的網頁存檔版本)瞭解如何解決問題? – josliber

3

如果可以,最簡單的方法是在Objective-C中編寫代碼,然後用C包裝它。這樣可以避免所有免費橋接的棘手部分(而那些棘手的部分是隻有越來越棘手 - 如果你想支持ARC __weak,那麼保留/釋放會更復雜)。

+0

但是這不會達到目的嗎?我想要在C中實現核心,以便它可以在ObjC環境中重用(並且如果有的話,也可以獲得一些性能提升)。 – zakishaheen

+0

這就是「如果你可以」的部分。如果你真的需要打包C,你必須以艱難的方式來完成。 –