是否可以用C ++编程iPhone

时间:2008-11-06 21:53:12

标签: c++ iphone objective-c

我是语言多样性的全部,但目标C是疯了。所以我很好奇:使用Cocoa API等可以用C ++编写iPhone应用程序吗?

11 个答案:

答案 0 :(得分:62)

尽管Objective-C最初确实看起来“疯狂”,但我鼓励你坚持下去。一旦你有一个“a-ha”的时刻,突然之间一切都开始变得有意义了。对我来说,花了大约2周的时间专注于Objective-C浓度来真正理解Cocoa框架,语言以及它们如何组合在一起。但是,一旦我真的“得到”它,它就非常令人兴奋。

听起来很陈词滥调,但这是真的。坚持下去。

当然,如果您引入C ++库或现有C ++代码,则可以将这些模块与Objective-C / Objective-C ++一起使用。

答案 1 :(得分:56)

简短的回答,是的,有点。您可以使用Objective-C ++,您可以在Apple Developer Connection.

阅读

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

答案 2 :(得分:41)

我使用Objective-C来一起制作UI 但代码的硬内容仍然是用C ++编写的。

这是Objective-C UI界面和处理事件的主要目的 它非常适用于此目的。

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

答案 3 :(得分:27)

首先,说Objective-C是“疯狂的”是幽默的 - 我有Bjarne Stroustrup C ++书坐在我身边,时间在1020页。关于Objective-C的Apple的PDF是141。

如果你想使用UIKit,你将很难用C ++做任何事情。任何符合Apple UI的严肃iPhone应用程序都需要用Objective-C编写UI部分。只有你在编写OpenGL游戏时才能完全坚持使用C / C ++。

答案 4 :(得分:14)

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

不要试图强迫Objective-C像C ++一样行事。起初,你觉得这是可能的,但是结果代码真的不适合Cocoa,你会对发生的事情感到困惑。花点时间正确学习,没有任何C ++,如何构建GUI和iPhone应用程序,然后链接到您的C ++基础。

答案 5 :(得分:3)

您必须使用Objective C与Cocoa API进行交互,因此别无选择。当然,您可以在幕后使用尽可能多的C ++(Objective C ++使这很容易)。

这确实是一种疯狂的语言,但它也是......一旦你习惯了它就会很有趣。 : - )

答案 6 :(得分:3)

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

有关MonoTouch Vs Obj-C的详细讨论,请参阅此帖子:How to decide between MonoTouch and Objective-C?

答案 7 :(得分:2)

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

到目前为止这是有效的,我没有遇到过任何陷阱。这似乎是一种合法的方法,因为Xcode允许您创建C ++类以及Obj-C类,并且一些官方示例代码以这种方式执行。我没有必要去任何官方支持的接口以外执行此操作。

考虑到Xcode中的界面构建器给你的帮助,即使有可能,在C ++中编写剩余的UI代码似乎也没什么好处,所以我的回答是你可以几乎所有应用程序都使用C ++,或者在适当/方便的时候使用C ++。

答案 8 :(得分:1)

是的但是,除非你编写非常简单的程序,否则认为你可以用一种语言编写各种程序是一个有缺陷的想法。 Objective C适用于Cocoa,因为C#适用于.NET,使用正确的工具进行正确的工作,尝试通过编写桥接代码使C ++与Cocoa交互,并尝试根据Cocoa要求使C ++代码行为不是一个好主意既不期望C ++ Objective C的表现是。您应该尝试布局应用程序的设计和体系结构,以便查看现有技能,并确定应使用哪种语言编写哪个部分,然后相应地构建。

答案 9 :(得分:0)

我目前正在编写一个名为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 app& it w0rkX0rz就像一个魅力。 ;-)它很快就会在GoogleCode上推出。搜索Objective-X或访问http://infotronix.orgfree.com/objectivex约。一周后!

更新了(但显然不活跃)网址:http://code.google.com/p/objectivex/

答案 10 :(得分:0)

这可能有点偏离主题,但无论如何。您可以在iOS设备上直接编写c ++。查看Cpp Code ios应用程序 - http://cppcode.info。我相信以后学习c和c ++以及objective-c会有所帮助。