簡體   English   中英

從 Objective-C 移植到 C++ 的最佳方法是什么?

[英]What is the best way to port from Objective-C to C++?

我沒有任何 Objective-C 經驗,但有強大的 C++ 背景。 是否有自動化工具/腳本,或者,最壞的情況,一些手動方法,使用對 Objective-C 到 C++ 中編寫的端口代碼的一些極好的參考? 有哪些困難?

編輯:有人告訴我代碼使用 Objective-C 相當簡單。 這是一個 iPhone 應用程序,可能不會以操作系統級 UI 的方式使用太多。 C++ 版本適用於不能選擇 GNUStep 的非 Apple 平台,因此不能選擇 Objective-C++。

我解決了同樣的問題。 並有一些解決方案:

  • Microsoft 現在提供自己的 Objective C“橋”,盡管僅適用於 UWP 應用程序。

    https://github.com/Microsoft/WinObjC

  • 2007 年我嘗試在 Visual Studio 中支持 Objective-C 並編寫了自己的 ObjC 運行時,但我沒有更多時間為它編寫解析器。 如果你有,你可以:)

    http://code.google.com/p/qobjc/

  • 我在 C++ 中編寫了 Foundation Framework 的基本功能。 在這種情況下,您需要手動移植; 您的代碼將在 C++ 上,但它會像在 Objective-C 上一樣。 這個庫在 iPhone 上工作。

    http://code.google.com/p/dcocoa/

我知道沒有自動化工具。 Objective-C 的動態特性很難轉換為 C++,因此除了瑣碎的 Objective-C 代碼之外,還需要相當多的腦力勞動。 您是否願意繼續使用 OS X(或者如果您是少數在 OS X 以外的操作系統上使用 Objective-C 的人之一,那么您是否願意繼續使用 GNUStep)? 如果是這樣,最簡單的方法是使用Objective-C++在 Objective-C 和 C++ 代碼之間建立橋梁。 Objective-C++ is an Apple extension to Objective-C and the GCC compiler that allows you to mix Objective-C and C++ code. You can thus create Objective-C objects that call or reference (but not inherit from) C++ objects and you can send Objective-C messages to Objective-C instances from within C++ code.

Objective-C 只是一個預處理器(和一個運行時庫)。 在移植所有庫時,您會發現比最終用戶代碼更多的問題。 翻譯時不吃東西的行為會很有趣。

在使用 Objective-C 框架一段時間后,您可能會開始在所有 c++ 代碼中看到糟糕的設計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM