【问题标题】:Utilizing C++ in iOS and Mac OS X applications在 iOS 和 Mac OS X 应用程序中使用 C++
【发布时间】:2012-01-06 14:45:51
【问题描述】:

我的 C++ 知识有些温和,但对 Objective-C 几乎一无所知。我正在计划(甚至开始)学习 Objective-C,这样我就可以尝试编写一些 iOS 甚至 Mac OS X 应用程序,但我对我还没有找到的东西很好奇。

是否可以完全使用包括 UI 组件的 C++ 编写 iOS 和/或 Mac OS X 应用程序?如果不可能完全用 C++ 完成,那么在多大程度上可以主要使用 C++?

我还没有看到任何演示这些项目的示例。我计划为 iOS 和 Android 编写一些移动应用程序,并且在可能的情况下,我希望将我的大部分逻辑包含在 C++ 代码中,以实现最大的可移植性。我已经知道我可以做到这一点,但我不确定学位。

【问题讨论】:

  • 如果您是中级 C++ 开发人员,您会发现学习 Objective-C 非常简单快捷,这是一种简单得多的语言。然后根据需要混合。

标签: c++ objective-c ios cocoa


【解决方案1】:

简短的回答,是的。

对于纯 C++,你应该看看QT framework
否则,您将很难处理 UI 部分。

但也要记住,Objective-C 可以与 C++ 混合使用。
这称为 Objective-C++(.mm 文件)。

然后您可以编写混合 C++ 和 Objective-C 代码的代码。 有了这个,您可以在 Objective-C 中使用 UI 部分(可能会更好,因为它会为 UI 组件使用本机框架),以及在 C++ 中的其他东西。

如果您决定学习 Objective-C,但仍想在某些部分使用 C++ 编码,我会推荐这种方法,而不是纯 C++。

iOS 上,这也是唯一的方法。虽然您可以使用 C++ 编写代码,但您必须在 UI 部分使用 Objective-C。

编辑

以下是一些开始使用 Objective-C++ 的链接:

【讨论】:

  • 谢谢。您是否推荐使用 Objective-C++ 的任何文章、书籍等?这似乎是一个简单的概念,但我也不想以一种或另一种方式把它走得太远(基本上是在寻找任何最佳实践或建议)。
  • 值得注意的是,Qt 显然不是 Apple 技术,也不是编写 Mac 应用程序的“官方”方式。 Qt 应用程序总是感觉像是一个 Windows 端口,我会告诫不要使用它。
  • 这是相当主观的。许多流行的应用程序都是用 Qt 编写的,包括 Skype 和 VLC。 Qt 只是让编写跨平台代码变得容易,这取决于开发人员/UX 设计人员使其在目标平台上“感觉良好”。
  • 谢谢。 sdl(而不是 Qt)呢? stackoverflow.com/questions/23063659/porting-sdl-app-to-ios
【解决方案2】:

Look this question

我不了解 Mac OS,但在 IOS 应用程序中,您可以在逻辑上使用 C++,但您必须在 Objective-C 上编写用户界面。

【讨论】:

    【解决方案3】:

    是否可以编写 iOS 和/或 Mac OS X 应用程序 完全使用 C++,包括 UI 组件?如果不可能 完全在 C++ 中完成,然后在多大程度上可以主要使用 C++?

    我认为如果你想依赖一些第 3 部分库,可以使用纯 c++,那么可以。

    如果没有第 3 部分库,您必须使用 Objective-c 编写所有 UI,其余部分您可以随心所欲地使用 c++。

    【讨论】:

      【解决方案4】:

      在构建设置中需要更改以在 iOS 项目中使用 C++ 文件 在“Apple LLVM 编译器 4.2 - 语言”选项下

      C++ 语言方言:编译器默认值 C++ 标准库:编译器默认

      【讨论】:

        【解决方案5】:

        您可以使用 Cocos2d-x 引擎并为您的 iOS 应用程序编写纯 C++,包括 UI(cocos 具有基本的 ui 类,如按钮、滚动视图、表格视图等 - 但您需要开发自己的控制器和模型使用各种 C++ 库,如 Hiberlite 或原始 SQLite 等)

        Cocos 有自己的 iOS/MacOS 接口(一些基本的 .mm Objective-c 类来设置应用程序运行周期 - 例如应用委托,或运行循环和绘图周期)

        所以你只需用 C++ 编写用户代码

        【讨论】:

          猜你喜欢
          • 2012-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-24
          • 2013-09-13
          • 2011-07-08
          相关资源
          最近更新 更多