是否有可能用C ++编程iPhone

我都是语言多样性,但Objective C是疯了。 所以我很好奇:是否有可能使用C ++编写iPhone应用程序,而使用Cocoa API等?

简短的回答,是的,有点。 您可以使用Objective-C ++,您可以在Apple Developer Connection中阅读这些内容。

如果您已经了解C ++,那么学习Objective-C将非常简单,如果您决定尝试一下。 有关该主题的更多信息也在ADC中。

虽然Objective-C确实最初似乎是“疯狂的”,但我鼓励你坚持下去。 一旦你有了一个“哈哈”的时刻,突然一切都开始有意义了。 对我来说,花费大约2周的时间,专注于Objective-C,才能真正理解Cocoa框架,语言以及它们如何融合在一起。 但是,一旦我真的“得到”它,这是非常非常令人兴奋的。

这听起来很老套,但确实如此。 坚持到底。

当然,如果您要引入C ++库或现有的C ++代码,那么可以在Objective-C / Objective-C ++中使用这些模块。

我使用Objective-C将UI绑在一起。
但是代码的难度仍然是用C ++编写的。

这是Objective-C UI界面和处理事件的主要目的。
这对于这个目的非常有用。

我仍然喜欢C ++作为代码的后端(但是主要是因为我喜欢C ++),你也可以很容易地使用Objective-C作为应用程序的后端。

首先,说Objective-C是“疯狂的”是幽默 – 我有坐在我身边的Bjarne Stroustrup C ++书,它的时钟是1020页。 Objective-C上的苹果PDF为141。

如果你想使用UIKit,那么在C ++中做任何事情都是非常非常困难的。 任何符合苹果UI的严肃的iPhone应用程序都需要它的UI部分被编写在Objective-C中。 只有在你编写OpenGL游戏时,你几乎可以完全使用C / C ++。

有一些这方面的经验,你确实可以使用C ++代码作为你的“核心”代码,但是你必须使用objective-C来处理任何特定的iPhone。

不要试图迫使Objective-C像C ++一样行事。 起初,在你看来,这是可能的,但是最终的代码真的不能和Cocoa一起工作,而且你将会对于发生的事情感到困惑。 花点时间正确学习,不用任何C ++,如何构buildGUI和iPhone应用程序,然后链接到C ++库。

您必须使用Objective C与Cocoa API进行交互,因此别无select。 当然,你可以在后台使用尽可能多的C ++(Objective C ++使得这很简单)。

这确实是一种疯狂的语言,但是,一旦你习惯了它,它也是有趣的。 🙂

我不确定C ++,但是您可以使用名为MonoTouch的产品在C#中编写iPhone应用程序。

你可以看到这个post,详细讨论MonoTouch Vs Obj-C: 如何在MonoTouch和Objective-C之间做出决定?

我正在将用Java编写的计算密集型Android应用程序移植到iOS6。 我通过将非UI部分从Java移植到C ++,使用Obj-C编写(最小)UI部分,并使用标准C / C ++技术将前者包装在(小)C接口中来实现这一点。它可以从Obj-C中访问,它毕竟是C的超集。

到目前为止,这一切都是有效的,我还没有遇到任何问题。 这似乎是一个合法的方法,因为Xcode允许您创buildC ++类以及Obj-C类,并且一些官方示例代码可以这样做。 我不必在任何官方支持的接口之外去做这件事。

考虑到Xcode中的接口生成器提供给你的帮助,即使可能,在C ++中编写剩余的UI代码似乎也没有什么好处,所以我的答案是可以使用C ++几乎所有的应用程序,或尽可能多的,因为你觉得适当/方便。

是的,但是,除非你正在编写非常简单的程序,否则认为你可以用一种语言来编程每一种程序是一个有缺陷的想法。 Objective C用于Cocoa,因为C#用于.NET,使用正确的工具进行正确的工作,尝试通过编写桥接代码使C ++与Cocoa交互,并尝试使C ++代码按照Cocoa要求行事,这不是一个好主意,既不期望C ++ Objective C的性能是。 您应该尝试布置应用程序的devise和架构,以保持现有技能,并确定哪个部分应该用哪种语言编写。

我目前正在编写一个名为Objective-X的Objective-C ++框架,这使得PURE C ++ iPHONE PROGRAMMING成为可能。 你可以这样做:

 #import "ObjectiveX.h" void GUIApplicationMain() {    GUIAlert Alert;    GUILabel Label;    GUIScreen MainScreen;    Alert.set_text(@"Just a lovely alert box!");    Alert.set_title(@"Hello!");    Alert.set_button(@"Okay");    Alert.show();    Label.set_text(@"Ciao!");    Label.set_position(100, 200, 120, 40);    MainScreen.init();    MainScreen.addGUIControl(Label.init()); } 

并使用GCC的相应命令行选项进行编译。 我已经编译了这个helloworld应用程序和它的w0rkX0rz就像一个魅力。 ;-)即将在GoogleCode上发布。 searchObjective-X或访问http://infotronix.orgfree.com/objectivex 。 一个星期后!

已更新(但显然不活跃)url: http : //code.google.com/p/objectivex/

这可能有点偏离主题,但无论如何。 你可以在iOS设备上编程c ++。 检查出CppCode ios应用程序 – http://cppcode.info 。 我相信这有助于以后学习c和c ++和objective-c。