在iOS和Mac OS X应用程序中利用C++

48

我的C++知识算是中等水平,但对Objective-C几乎一无所知。我计划(甚至已经开始)学习Objective-C,以便尝试编写一些iOS和Mac OS X应用程序,但有一个问题我一直很好奇,还没有找到答案。

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

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


3
如果你是一名中级的C++开发者,那么学习Objective-C会非常容易和快速,因为它是一种更简单的语言。然后根据需要进行混合使用即可。 - Firoze Lafeer
5个回答

55

简短回答,是的。

对于纯C ++,您应该看一下QT框架
否则,UI部分会比较困难。

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

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

如果您已经决定学习Objective-C,但仍然想为某些部分编写C ++代码,我建议使用此方法,而不是纯C ++。

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

编辑

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


谢谢。你有没有推荐使用Objective-C ++的文章,书籍等相关资源?这似乎是一个简单的概念,但我也不想在某个方向上走得太远(基本上在寻找任何最佳实践或建议)。 - Kris
7
值得注意的是,Qt显然不是苹果技术,也不是编写Mac应用程序的“官方”方式。Qt应用程序总是感觉像是Windows移植过来的,我建议不要使用它。 - Rob Keniger
5
这是相当主观的。许多热门应用程序都使用Qt编写,包括Skype和VLC。Qt使得编写跨平台代码变得简单,而让它在目标平台上“感觉正确”则需要由开发人员/用户体验设计师来完成。 - donturner
谢谢。那么,如果使用SDL(而不是Qt)呢?https://dev59.com/v37aa4cB1Zd3GeqPtrSe - javaLover

2

看这个问题

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


1

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

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


1
有没有可能使用C++编写iOS和/或Mac OS X应用程序,包括UI组件?如果完全使用C++不可能实现,那么在多大程度上可以主要使用C++?
我认为如果你想依赖于一些第三方库,那么完全使用纯C++是可能的。
如果没有第三方库,您必须使用Objective-C编写所有UI,其余部分可以尽可能地使用C++。

0

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

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

因此,您只需使用C++编写用户代码即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接