問題タブ [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 に答える
1249 参照

cocoa - QMacNativeWidget を介して Qt と Cocoa を混在させる - NSWindow で QDialog を表示するのに問題があります

私は Cocoa アプリケーションのプラグインに取り組んでおり、既存の cpp コードを使用するために、Cocoa プラグインを Objective-C++ を介して既存の Qt プロジェクトと組み合わせることにしました。良い。

とにかく、私は現在の問題に困惑しています。このプラグインの設計は、アプリケーションが内部に 2 つの NSView を持つ NSWindow を提供するようになっています。これら 2 つのビューのいずれかの内部に QMacNativeWidget を配置すると、そこにあるすべてが正常に機能します。私が抱えている問題は、プラグイン内から新しい QDialog() を作成しようとすると、QDialog が常にプラグインを含む NSWindow の背後にあることです。

新しい QDialog を raise() するかどうかに関係なく、NSWindow は、QDialog へのキーボード フォーカスをすぐに失いますが、常に前面にあります。NSWindow を移動すると、その背後に QDialog が表示されますが、タイトルバーをクリックして移動しても、まだ NSWindow の背後にあります。

誰かが NSWindows と QDialogs を混在させることで同様の問題を抱えているかどうか、また QDialog を別の QMacNativeWidget にラップして別の NSWindow に配置する以外に解決策があるかどうか疑問に思っていました。多くのダイアログ。

ありがとう。

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

objective-c - Objective-C++のデストラクタ

私は目的を持っています-いくつかの正直なC++オブジェクトポインタを含むC++クラス。

Obj-C ++クラスが破棄されると、すぐにdeallocが呼び出されますか?もしそうなら、それから置くことによってC++クラスを破壊するための最良の方法です

Deallocメソッドで?

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

c++ - あいまいなクラスの名前空間の問題

私は...これを尋ねるのは本当にばかげていると思いますが、問題を解決する方法がわかりません。

これは私のコードの一部です (Objective-C++):

そして、私が得ているエラーは次Use of 'Window' is ambiguousのとおりです。それは、スーパークラスである Xh astypedef XID Windowおよび window.h で宣言されていることclass eq::Windowを示しています。

私が宣言しているクラスははいである必要がありnamespace eqOtherますか? eqOther::Windowとは違うeq::Window!?

私はとてもばかげているように感じますが、私が間違ったことをしたことはわかりません...

0 投票する
5 に答える
2135 参照

shared-ptr - iPhone 上の Objective C++ 用の std::tr1::shared_ptr?

私は主に C++ 開発者で、最近は iPhone アプリケーションを作成しています。

iPhone でのメモリ管理は問題ありません。リソースの制限により、ディープ コピーではなく参照カウンターを使用することをお勧めします。

面倒なことの 1 つは、参照カウンターを自分で管理する必要があることです。alloc はカウンター = 1 を意味します。保持はカウンター++を意味し、リリースはカウンター--を意味します

Cocoa Touch 用に shared_ptr のようなクラスを作成したいので、自分で参照カウンターを手動で操作する必要はほとんどありません。

そのための既存のコードがあるかどうか疑問に思っています。アドバイスを聞きたいのですが、Objective C を学び始めてから今日で 5 日目です。

ありがとう。

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

iphone - リニア PCM 値とは

私は iPhone OS でオーディオを扱っていますが、少し混乱しています。

現在、オーディオ バッファから -32767 ~ 32768 の範囲の pcm 値の形式で入力を取得しています。式 20LOG10(p/pref) を使用して dbSPL 変換を実行したいと考えています。

pRef が .00002 パスカルであることは認識しており、pcm 値をパスカルに変換したいと考えています。

私の質問は、a) これらの pcm 値が正確に何を表しているかです。b) これらの値をパスカルに変換するにはどうすればよいですか。

本当にありがとう

0 投票する
5 に答える
491 参照

c++ - C++で最も基本的なクラスは何ですか

この質問がそれほどばかげていないことを願っていますが、標準のC ++で最も基本的なクラスは何ですか?物体?物体?

「token{の前に期待されるクラス名」が表示されます

標準のc++クラスの継承を示すマップ、図、または画像はありますか? このようなものですが、C ++用ですか?

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

iphone - ハンドラーファイルで私のオブジェクトを解放したのは誰ですか?

私はiPhone開発の世界の初心者です。

私は新しいプロジェクトを開始し、Objective cについて学んだことをテストするために使用しました。基本的に、ローカルサーバーからデータを送受信し、そのデータの一部をクラス内に保存します。正常に機能します。すべてがコマンドラインにあります。

私のクラス定義:

「out」値を設定し、それらをxmlに変換して、サーバーに送信します。サーバーが応答します。「in」値を取得します。名前は「in」値の特別な値を含む文字列です。

問題は、コードをインターネットで見つけたいくつかの例/デモと混合しようとすると発生します。デモはいくつかのMVCをもたらしますか?ファイル(* Handler.h / m、* ViewController.h / m、* AppDelegate.h / m)。ボタンが1つあり(btnStart)、そのボタンを押すと呼び出されます

startメソッド内にsendおよびreceive呼び出しを配置すると、すべてが正常に機能します。

しかし...

私は2つのボタンを試してみました:送信と受信、両方が機能します(私はそれらを試してコンソールに出力を送信しました)、両方の方法は次のとおりです:

両方とも*Handler.m内

次に:メソッド1)は[myClientsend]を実行するだけです。メソッド2)は[myClientreceive]を実行するだけです。

それは機能しません、それは私に「BAD_ACCESS」エラーを投げます、私はデバッグしました(私はNSZombieを使用しました..)..。

[myClient send]を呼び出すと保存されるデータ(in、out、name)が解放/強制終了/[myClientreceive]を呼び出すと存在しないことがわかりました

[myClientリリース]などとは呼んでいません。

質問:私は何が間違っているのですか?そのコード(方法1)と2))はどこにあるべきですか?

ありがとう。

更新: ここにいくつかのコードがあります、それは巨大です、それで私は重要な部分をコピーして貼り付けました、あなたがより多くのコードを必要とするならば私に知らせてください、ありがとう!

更新: ありがとう(IwasRobbed、Simon、TechZen)

私はコードをデバッグして変更しています...私は次のことを発見しました:名前の名前とIDの値を維持するために、私は次のことをしなければなりません:

質問:Q1。copy古いコード(なし)について話すと、 nameandのid値が解放されます。

1)paramIn辞書に合わせてparamIdリリースされますか?

また

2)両方の値がparamIn辞書からコピーされますが、保持/コピーの指示はありません

答えは2)だと思いましたよね?

Q2。NSMutableDictionariesparamInに保存されている値を保持するにはどうすればよいparamOutですか?

ありがとう

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

c++ - Objective-CヘッダーでのC++クラス宣言

Objective-cヘッダーでクラスc++スタイルを宣言したいのですが、「エラー:'CPPClass'の前に'='、'、'、';'、'asm'または'__属性__'が必要です」というエラーが表示されます。

これが.hファイルのコードです。

私がそれをobjective-cスタイルで実装@class CPPClassすると、それを定義するときにエラーが発生し、インターフェイス宣言が見つからないというエラーが発生します。とにかくこれを行う方法はありますか、そうでない場合は、インポートされたc++ヘッダーとともにヘッダーファイルをインポートするすべてのobjective-cクラスも.mmファイルである必要があります。

ps。mファイルの名前をmmに変更しました。

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

iphone - Apple iPhone/Mac OSX を対象とするポータブル C/C++/Objective-C++ コードの書き方

Win32 と VxWorks で動作する C/C++ コードを使用しています。#ifdef WIN32プラットフォーム固有の実装に切り替えるために使用します。

私は iPhone でコードを使用しており、更新して可能な限り移植性を維持したいと考えていますが、何がベスト プラクティスなのかわかりません。今まで#ifdef __APPLE__ブロックを使っていました。

Apple iPhone と Mac OS X をターゲットにするには、何を使用すればよいですか?

  • #ifdef __APPLE__最善のアプローチはありますか?
  • 注意すべき落とし穴はありますか?
0 投票する
3 に答える
5764 参照

c++ - リンカーのCXX_FLAGSでのCMakeクロスコンパイルの問題

私はmacosxでiPhoneクロスコンパイル用の次のツールチェーンを持っています:

そして私は次のCMakeLists.txtを使用します:

次のコンパイルbashスクリプトを使用します。

問題は、リンカーでもCMAKE_CXX_FLAGSを使用していることです。コンパイルは問題ありません。リンクは問題なく表示され、正しい-frameworkフラグが追加されますが、CMAKE_CXX_FLAGS(-x Objective-c ++)も追加されるため、以前にコンパイルされたオブジェクトファイルをリンクする代わりに、Objective c ++(-x Objective-c ++)をコンパイルするように動作します。これらのオブジェクトをリンクします。

次のようなエラーが発生します

私が何を間違っているのか分かりませんか?