【发布时间】:2010-01-21 13:22:39
【问题描述】:
我在 C++/Linux 上编码已经 10 多年了。
我正在转行做 Mac 开发。
我的开发涉及 GUI 组件。
是我学习 Cocoa/Objective-C 的唯一选择,还是有办法包装 Cocoa 并在 C++ 领域使用它?
谢谢!
【问题讨论】:
-
标准方法是使用 Cocoa 编写 GUI 并包装 C++ 核心。
标签: c++ objective-c cocoa
我在 C++/Linux 上编码已经 10 多年了。
我正在转行做 Mac 开发。
我的开发涉及 GUI 组件。
是我学习 Cocoa/Objective-C 的唯一选择,还是有办法包装 Cocoa 并在 C++ 领域使用它?
谢谢!
【问题讨论】:
标签: c++ objective-c cocoa
是的,你需要学习 Objective-C。此外,如果您不需要,您将不会获得太多收益。难学的不是语言,而是 Cocoa 框架(不是因为它本身就很难,而是因为它太庞大了)。
【讨论】:
您可以使用 Carbon,但已弃用。
正如 Ole 所说,如果你有 C++ 背景,那么学习 Objective-C 并不难——如果你使用 Objective-C++,你可以混合使用多种语言(这可能很有用,但通常最好将使用不同的代码进行分区语言 - 所以 GUI 层使用 Objective-C/ Cocoa,核心逻辑使用 C++。我在我的 iPhone 游戏中就是这样做的,vConqr)。
如果您使用 C++ 完成过 GUI 工作,我想您会理解为什么选择 Objective-C 用于 Cocoa。它非常适合事件驱动的设计,并且有许多自然适合的抽象。但是,当您进入更抽象的领域时,特别是如果您使用大量容器和算法,您可能会开始发现这些限制有点烦人。但是给它时间 - 还有其他一些不是很明显的有用抽象(动态类型、键/值编码和其他形式的反射、类别...)。
您可能还会发现this stackoverflow question 很有用。
【讨论】:
不,我认为你不需要学习 Objective-C。您可以使用 Qt 框架在 Mac 上使用 C++ 开发应用程序。
【讨论】:
如果您只打算在 Mac 应用程序上工作,那么请学习 Objective-C 和 Cocoa 框架。 Cocoa 应用程序可以在较新的 Mac OS X 版本中“免费”获取新功能,并且将比 Qt 等跨平台应用程序框架更具前瞻性。
Cocoa 框架有很多方面(统称为),最好还是坚持使用本机应用程序框架来为您的客户(最终用户)服务。这才是真正重要的,而不是学习一门新语言或框架的短期不便(随工作而来,适应或死亡)。
很快你就会和我们其他人一样对 Xcode 感到沮丧。
【讨论】:
我在 Mac 上使用 WxWindows 进行工具开发。花了一点时间,但我得到了我在 Windows 上使用的基于 Jam 的 c++ 管道,它运行良好。要让这一切正常工作,您唯一需要记住的是创建正确的应用程序规则……很容易作为一个堵塞规则工作。
【讨论】:
正如其他一些答案中提到的,有许多支持 mac 的跨平台 GUI 库。比如 Qt 和 WxWindows。你可以使用它们中的任何一个,我个人只使用过 Qt,并且在使用 Java 和 C 工具包之后发现使用它非常愉快。
【讨论】:
为了使用本机 GUI 库,您也可以使用 Python (PyObjC)。 Java 还能够在 OS X 中制作具有原生外观的应用程序。
【讨论】: