web-dev-qa-db-ja.com

iPhoneをC ++でプログラムすることは可能ですか

私はすべて言語の多様性を求めていますが、Objective Cは非常識です。興味があります:Cocoa APIなどを使用しながら、C++でiPhoneアプリをコーディングすることは可能ですか?

125
Dmitri Nesteruk

短い答え、はい、ある種。 Objective-C++を使用できます。Objective-C++は、 Apple Developer Connection。 で読むことができます。

C++を既に知っている場合、Objective-Cの学習は、試してみることにすれば非常に簡単です。このトピックに関する詳細は、ADCにもあります。

57
Robert S.

Objective-Cは実際には最初は「非常識」に見えますが、これに固執することをお勧めします。 「a-ha」の瞬間が来ると、突然すべてが意味を成し始めます。私にとっては、Cocoaフレームワーク、言語、およびそれらがすべてどのように適合するかを実際に理解するには、約2週間の集中的なObjective-C集中が必要でした。しかし、実際に「取得」すると、非常に興奮しました。

決まり文句に聞こえますが、本当です。突き出す。

もちろん、C++ライブラリまたは既存のC++コードを取り込む場合、Objective-C/Objective-C++でこれらのモジュールを使用できます。

62
Mitch Haile

Objective-Cを使用してUIを平手打ちします。
しかし、コードのハード内部はまだC++で記述されています。

これが、Objective-CのUIインターフェースとイベント処理の主な目的です。
そして、それはその目的に最適です。

それでも、コードのバックエンドとしてC++が好きです(ただし、主にC++が好きなため)。アプリケーションのバックエンドにもObjective-Cを非常に簡単に使用できます。

41
Martin York

まず、Objective-Cが「非常識」だと言うのはユーモラスです。私は、Bjarne Stroustrup C++の本を1020ページで公開しています。 AppleのObjective-Cに関するPDFは141です。

UIKitを使用する場合、C++で何かを行うことは非常に困難です。 AppleのUIに準拠する本格的なiPhoneアプリでは、Objective-CでUI部分を記述する必要があります。 OpenGLゲームを書いている場合にのみ、ほぼ完全にC/C++に固執することができます。

28
dnolen

これについてある程度の経験があれば、実際には「コア」コードにC++コードを使用できますが、iPhone固有のものにはObjective-Cを使用する必要があります。

Objective-CをC++のように動作させようとしないでください。最初はこれが可能であるように見えますが、結果のコードは実際にはCocoaではうまく機能せず、何が起こっているのか非常に混乱します。 C++を使用せずに、GUIとiPhoneアプリケーションを構築する方法を適切に学習し、C++ベースにリンクしてください。

14
Chris Jefferson

Cocoa APIとのインターフェースにはObjective Cを使用する必要があるため、選択の余地はありません。もちろん、舞台裏で好きなだけC++を使用できます(Objective C++で簡単にできます)。

それは確かに非常識な言語ですが、それも...ちょっと慣れてきたら使うのもちょっと楽しいです。 :-)

3

C++についてはわかりませんが、 MonoTouch と呼ばれる製品を使用して、iPhoneアプリケーションをC#で確実にコーディングできます。

MonoTouch Vs Obj-Cの詳細については、この投稿を参照してください。 MonoTouchとObjective-Cのどちらを決定するか?

3
goblinjuice

Androidで書かれた計算集約型のJavaアプリをiOS6に移植中です。非UI部分をJavaからC++に移植し、Obj-Cで(最小限の)UI部分を記述し、標準Cを使用して前者を(小さな)Cインターフェースでラップすることでこれを行っています。/C++テクニック。Obj-Cからアクセスできます。Obj-Cは、結局Cのスーパーセットです。

これはこれまでのところ効果的であり、私は問題に遭遇していません。 Xcodeを使用すると、C++クラスとObj-Cクラスを作成できるため、これは正当なアプローチのようです。また、公式のサンプルコードの一部はこのように処理します。これを行うために、公式にサポートされているインターフェイスの外に行く必要はありませんでした。

Xcodeのインターフェイスビルダーから提供されたヘルプを考慮しても、C++で残りのUIコードを書くことで得られることはあまりないように思えるので、C++を使用して、ほとんどすべてのアプリ、または適切/便利と思われる分だけ。

2
JulianSymes

はい、しかし、あなたが非常に単純なプログラムを書いているのでなければ、あらゆる種類のプログラムを単一の言語でプログラムできると考えることは欠陥のある考えです。 Objective CはCocoa向け、C#は.NET向け、適切なツールを適切な仕事に使用、ブリッジングコードを記述してC++をCocoaと対話させ、C++の要件に従ってC++コードを動作させようとすることは、C++を期待することでもありませんObjective Cのパフォーマンスは。既存のスキルを考慮して、アプリのデザインとアーキテクチャをレイアウトし、どの部分をどの言語で記述し、それに応じてビルドするかを決定する必要があります。

2
Bilal Ahsan

現在、Pure C++ iPHONE PROGRAMMINGを可能にするObjective-Xと呼ばれるObjective-C++フレームワークを書いています。このようにすることができます:

#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で利用可能になります。 Objective-Xを検索するか、 http://infotronix.orgfree.com/objectivex をご覧ください。一週間後!

更新された(ただし、明らかにアクティブではない)URL: http://code.google.com/p/objectivex/

0
Arpad Goretity

それは少し話題外かもしれませんが、とにかく。 iOSデバイスでc ++を直接プログラムできます。 CppCode iosアプリを確認してください- http://cppcode.info 。後でcとc ++とObjective-cを学ぶのに役立つと思います。

0
4ntoine