問題タブ [objective-c++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
903 参照

c++ - Objective-C 子オブジェクトから C++ オブジェクトのメソッドを呼び出す

C++ オブジェクト内のメソッドを呼び出すために、Objective-C オブジェクトからイベントを取得しようとしている Objective-C++ コードがいくつかあります。私はObjective-Cに非常に慣れていないので、これをすべて間違っている可能性があります。

例:

メソッド[house.door.knob Event]はイベントで生成され、呼び出しできるようにしたいhouse.alarm.Alert()。しかし、これを正しい方法で達成する方法がわかりません。誰かがこれを達成する方法を提案できますか?

0 投票する
2 に答える
2164 参照

c++ - コンパイルおよびリンク時に、C ++のメイン関数とクラスをObjective-Cおよび/またはCルーチンから分離できますか?

私はObjective-Cクラスをインポートした小さなC++アプリケーションを持っています。これはObjective-C++ファイル.mmとして機能しますが、Objective-Cヘッダーを含む可能性のあるヘッダーを含むC ++ファイルは、適切なGCCドライバーの.mm拡張子に名前を変更する必要があります。

Objective-Cクラスの純粋なC++ラッパーを作成する方法はありますか、それとも、Objective-Cオブジェクトを何らかの方法で分離して、それらを個別にリンクすることはできますか?たぶん、Objective-Cクラスが小さなライブラリになったとしても、コンパイル時に静的に再リンクできますか?

問題は、このコードがクロスプラットフォームであり、通常はObjective-Cを使用しないシステム(つまりMacではない)でコンパイルするのがより難しいことです。プリプロセッサコマンドはWindowsまたはLinuxでのObjective-Cコードの実装を制限しますが、元のコードにはまだ.mm拡張子が付いており、GCCはコードをObjective-C++として扱います。

0 投票する
4 に答える
18298 参照

iphone - C++オブジェクトをObjective-Cクラスに追加する

私はC++とObjective-Cを混在させようとしています。ほとんどの方法で作成しましたが、Objective-CとC++コードの間に単一のインターフェイスクラスが必要です。したがって、ViewControllerインターフェイスに永続的なC++オブジェクトが必要です。

これは、タイプのない'myCppFile'の宣言を禁止することで失敗します。

ただし、これは.mm実装ファイルでは問題なく機能します(cppobjectを呼び出し間で保持したいので機能しません)

0 投票する
2 に答える
29672 参照

iphone - Objective-C、.m / .mmのパフォーマンスの違いは?

新しいクラスを作成するときは、デフォルトで.mm拡張子を使用する傾向があるため、後で必要に応じてObjC++を使用できます。

これを行うことに不利な点はありますか?いつご希望.mですか?より高速な実行可能ファイルにコンパイルしますか.m(Cは一般的にC ++よりも高速であるため)?

0 投票する
3 に答える
1143 参照

c++ - Objective-C++ 内での C++ クラスの使用

Cocoa アプリケーションで小さな C++ ライブラリを使用しています (atm は、その方法を学ぶための非常に単純な例です)。

したがって、次のような名前空間に小さな C++ クラスがあります。

次に、次のコードを含む .h ファイルがあります。

最後に実装 (test.mm というファイル内):

これをコンパイルしようとすると、次のエラーが発生します。

私は何を間違っていますか?? Cコンパイラを使用してヘッダーファイルをコンパイルしているようです。

メンバーを void* 型として宣言し、実装でキャストを使用すると、これを Objective-C クラスでラップできます。しかし、これは間違いなく最も快適な方法ではありません。

0 投票する
2 に答える
1251 参照

xcode - Xcode プロジェクトの C++ および Objective C

最近、Xcode をバージョン 3.2.2 (プレリリース) に更新しました。古い Objective-C プロジェクトでは正常に動作していますが、Objective-C/Objective-C++ コードが混在するプロジェクトでは問題が発生します。コンパイル中に次のエラーが発生します。

コンパイラが不平を言うパスを確認したところ、ファイル functexcept.hが次のパスにあることがわかりました。

/開発者/プラットフォーム/iPhoneOS.platform/開発者/SDKs/iPhoneOS3.0.sdk/usr/include/c++/4.2.1/armv7-apple-darwin9/bits/

私の質問は、そのパスを Xcode で正しいパスに変更する必要がある場所ですか? 前もって感謝します。

0 投票する
3 に答える
1693 参照

objective-c - Objective-C++の文字列

コードをObjective-CからObjective-C++に切り替えました。2本の線を除いてすべてが泳ぎに行きます。

この行は

最初のエラーに関連する2番目のエラーは、次の行からのものです。

それは文句を言う

ObjCとObjC++の違いで見逃したことはありますか?

0 投票する
1 に答える
1113 参照

iphone - Objective C++ でメモリを管理するには、何を知る必要がありますか?

iPhone アプリで C++ オーディオ ライブラリを使用しています。C++ オブジェクトに使用できる Objective C / Cocoa メモリ管理インフラストラクチャはありますか? それとも、C++ メモリ管理を読んで学習する必要がありますか?

0 投票する
1 に答える
903 参照

iphone - ObjectiveC++で不透明なポインタを使用する際の問題

この質問に対する答えは、不透明なポインターがC++メンバー変数をObjectiveC++ヘッダーに含めるための良い方法であることを説明しています例に従おうとすると、コンパイルエラーが発生します。これが私のヘッダーの関連コードで、対応するコンパイラエラーがコメントとして表示されています。

私がここで間違っている単純なことはありますか?

0 投票する
2 に答える
256 参照

c++ - テンプレート引数として指定された場合、0 は有効な FILE* ではありません

次のコード

MacOS X 上の Xcode によって .mm ファイル (Objective C++) にコンパイルされると、次のエラーがスローされます。

エラー: テンプレート引数 '0' を 'FILE*' に変換できませんでした。

どうしたの?問題のコードは、MSVC で正常にコンパイルされました。0 定数が何かへの有効なポインタではないのはいつですか? これは (バニラ C++ ではなく) Objective C++ のアーティファクトですか?