質問

Hillegassの本を読んで、Objective-CとCocoaを学びました。 そして、Objective-C ++を使用したほうが良いかもしれないと思います。 Objective-CはUIを開発するための明確な選択肢のように見えますが、私は非常に強力なC ++のバックグラウンドを持ち、C ++でアプリケーションバックエンドを開発し、Objective-C ++を使用してUI統合を行いたいと思います。 しかし、AppleがObjective-C ++の開発を続けるのか、それとも行き止まりになるのだろうかと思います。

Objective-C ++を使用している人はいますか?

役に立ちましたか?

解決

免責事項:私は仕事もAppleの代弁もしていませんので、これは私の意見です:

大手デベロッパーショップについて話すことはできませんが、私の小さなグループでは、C ++ライブラリの統合と、C ++でのバックエンドの作成を提案するためにObjective-C ++を使用しました。 @alxpが言及しているように、言語の境界を越えた例外処理のようなものは苦痛ですが、少しの計画で、これらの苦痛のほとんどを避けることができます。経験豊富なC ++開発者にとっては、苦労するだけの価値はあります。

サポートに関しては、現在の状態のサポートがすぐになくなることはないと想定できると思います。 GCCコードベースの一部であり、 Clang ツールチェーン(Appleの次のコンパイラツールチェーン)は、Objective-C ++を完全にサポートしています。一方、Appleが統合の開発を継続するという公式の保証はありません。たとえば、いぼの一部を修正します。

現在のプロジェクトでは、Objective-C ++を使用するとメリットが得られる場合、既存のサポートに依存しても安全であり、使用する必要があります。

他のヒント

ObjC ++を使用したのは、ライブラリを移植して、ObjCコードからアクセスできるようにすることだけでした。 ObjC ++とObjCが例外やクラスの作成と破棄などを処理する方法の衝突により、1つのプロジェクトで2つの言語をジャグリングするのは頭痛の種になりました。

Cocoa / JavaのサポートはGCCのかなり堅実な部分であり、Objective-C ++がObjective-Cがコンパイルできるのと同じ方法でまっすぐなC ++にコンパイルされるため、サポートがすぐになくなるとは思わないまっすぐなCに至るまで、Objective-Cと比較してソフトウェアを構築し、OS Xが提供するフレームワークを快適に完全に使用できるという点で、まだ快適な環境ではないと思います。

Objective-C ++は、Objective-Cがサポートされている限り、サポートされ続ける可能性があります。 Obj-C ++は、 clang の基本的な目標であり、最終的にはAppleとしてgccを置き換えることが期待されています。優先コンパイラ。 CarbonアプリケーションがCocoaフロントエンドに移行するにつれて、使用率が上昇する可能性があります。

もちろん、“可能性が高い” Appleは非常にエキサイティングな予測不可能なため、上記の2回表示されます。 :-)

Appleは、CocoaとObjective C ++を更新する際に、Objective C ++を維持するためにAppleが必要とする重要な繰り返しの努力が見られないので、しばらくの間、Objective C ++をサポートし続けると思われます。

先日、Xcodeのリファクタリングサポートを使用して、Objective-C ++ファイル内にあるいくつかのObjective-Cコードをリファクタリングしようとしたときに驚きました。メニュー項目が有効になっている場合でも、Objective-C ++コードをリファクタリングできません。 XcodeはCおよびObjective-Cコードのみをリファクタリングできます。エラーメッセージ。そのため、Objective-C ++のコンパイルは無期限に機能し続けますが、Objective-C ++はXcodeの2番目のクラスの市民になると思います。

すべてのコードから削除しました。 .mmファイルはありません。

ただし、.mファイルと通信するには.cppファイルが必要です。解決策は、血液脳関門を無傷に保つ.c / .hファイルです。

objective-Cを使用したC ++は、通常、手荷物が多すぎます。

Objective-Cは、実際にはC言語でオブジェクトをエミュレートするCコードの束であり、Objective-Cヘッダーファイルを含むCコンパイラを使用しています。 Objective-C ++を使用すると、C ++コンパイラが使用され、C ++がCコードを実行するため、Objective-CヘッダーがCコードとして含まれます。 Objective-C ++は、基本的にC、C ++、Objective-C(実際にはCのみ)です

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top