問題タブ [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 投票する
2 に答える
1349 参照

c++ - Objective C++ コードで合成されたプロパティ セッターによって呼び出されないコピー コンストラクター

Objective-C++ がまばらに文書化されていることは誰もが知っています。これについては何も見つかりませんが、適切で明確な検索用語を見つけるのも難しいと感じています. だから、救助へのStackoverflow(私は願っています)!

私は Objective-C(++) クラス内にインスタンスを持つ C++ クラスを持っています (そして、コンストラクター/デストラクタが呼び出されるようにプロジェクト設定を有効にしています)。

@synthesized プロパティを介してインスタンスを公開しようとするまで、これはすべて正常に機能します。私はそれをassignプロパティにします (Obj-C 保持カウントは適用されないため)。コピーコンストラクターが関与すると予想されるインスタンスを設定する場合を除いて、プロパティは機能しているように見えます。私が実際に見ているのは、一時的なインスタンスが作成されていることです(そのコピーコンストラクターが呼び出されいます)-これはすべて予想されています。ただし、ivar インスタンスのコピー コンストラクターは呼び出されません。値は「魔法のように」設定されます。@synthesized コードはmemcpy最終ステップとしてa のようなことをしていると思います。これはstructC では問題ありませんが、C++ ではあまり役に立ちません。classコードの正確性は、適切に呼び出されるコピー コンストラクターと代入演算子に依存します。

誰かがこれをさらに詳しく調べたり、動作させたり、C++ オブジェクトを Obj-C(++) クラスの ivar として保持したり、@synthesized プロパティ セッターによって呼び出されたコピー コンストラクターを持ったりすることができないことを確認しましたか?

(必要に応じて、これらすべてのサンプル コードを投稿できますが、最小バージョンでも画面一杯程度です)。

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

c++ - .cppファイル内のObjectiveC構文?

いくつかのサンプルコードを自分のプロジェクトにコピーしようとしています。サンプルプロジェクトは、SDKのiPhoneExtAudioFileConvertTestです。サンプルプロジェクトには、ExtAudioFileConvert.cppというファイルが含まれています。このファイルには、Objective-Cコードのように見えるものが含まれています。

サンプルプロジェクトは正常に実行されますが、独自のプロジェクトをビルドすると、コンパイラは上記のコードについて文句を言います。エラー:'['トークンの前にプライマリ式が必要です

何が起きてる?明らかに、.cppファイルでObjectiveCブラケット構文を使用する方法がいくつかあります。それを機能させるために何をする必要がありますか?

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

iphone - iphone: スレッド + リリース プール + [オブジェクト リリース] = 「割り当て解除されたインスタンスに送信されたメッセージ」

iPhoneで小さなコードを実行しているとうまくいきません。

基本的に、ボタンを押すだけで、 が呼び出され、バックグラウンド スレッドでメソッドがrunTest実行されます。testそのため、自動解放プールを作成しました。

以下のコードを実行すると、コンソールに次のような美しいメッセージが表示されます。
2010-09-07 11:45:15.527 test[1312:207] *** -[CFString release]: message sent to deallocated instance 0x3d52ba0

testバックグラウンド スレッド (自動解放プールなし) で実行せず、 を呼び出すだけ[self test]で、コードは正常に 動作することがわかりました。

だから、問題はスレッド+自動解放プールにあると思いますが、何が間違っていますか? どうすれば解決できますか?

PS私はNSZombieフラグを有効にしています。

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

objective-c - Objective-Cのメモリ管理

Objective-cのメモリ管理についていくつか質問があります。

まあ言ってみれば:

sのコンテンツstr1のコピーがあると思います:含まれているメモリ(ヒープ)の1つのアドレスを指します。このアドレスは、が指しているアドレスと同じではありません。右?teststr1msgtest

str2について:
1。何を保存しますか?、同じアドレスを指していると思いますtestが、参照カウンターが2に増えますtest。2
。テストの内容を変更すると、str2には何がありますか?私はそれがまだ指していると思いますmsg

str3について:それは間違っていますよね?、どうしassignますか?

ありがとう。

ボーナス質問:

コンテンツを変更する前にテストをリリースする必要がありますか?

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

c++ - Objective C ++とは何ですか?

Objective C ++とは何ですか?この言語をXcodeで使用できますか?

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

coding-style - コーディングスタイル:内部または外部のロック/ロック解除?

もう1つのおそらく非常識なスタイルの質問:

並行性をどのようにロックする必要がありますか?エグゼキュータまたは呼び出し元は、スレッドをロックする責任がありますか?

たとえば、特定の言語ではありません。

また

スレッド化とロックについてはほとんど知らないので、コードが堅牢であることを確認したいと思います。2番目のメソッドは、スレッドセーフでない呼び出しを許可します...技術的には、いかなる種類のロックも実行せずに_executor.method()を呼び出すことができます。

ヘルプ?

ありがとう、

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

c++ - appendBezierPathWithGlyphs でグリフ アウトラインを取得する際の問題

Objective-C++ を使用しています。

NSBezierPathsを使用してテキストのパス アウトラインを取得しようとしていますappendBezierPathWithGlyphs。問題は次のとおりです。出力はかなりナンセンスです:(

私が書いたこと:

たとえば、文字「t」の場合、次の出力が得られます。

これは私にとって本当に間違っているようです!

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

c++ - 目的-XcodeのC++および.cppファイル

単純なObjective-C++アプリケーションを作成しようとしています。C ++クラスをミックスに追加しようとするまで、Objective-CクラスでのC ++の使用を含め、すべてのコードは正常にコンパイルされています。単純なC++クラスを作成しました。

Test.h

このファイルをObjective-Cクラス(拡張子.mm)に含めると、次のビルドエラーが発生します。

明らかに、私はここでいくつかの単純な概念を見逃しています。いくつかの啓蒙をいただければ幸いです。

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

android - gcc-xobjective-cとAndroidSDK

Objective-Cが存在し、MinGWでもサポートされているので、渡すこと-x objective-cで、Android SDKでこれを実現するためのハックはありますか?objective-c言語がサポートされていないように見える同僚のマシンで基本的なテストを行いました。

UIKitやAppKit、さらにはFoundationを機能させることに興味はありません。私はほとんどのOpenGLESゲームをObjective-Cで作成し、MacOSXとWindowsに正常に移植しました。GNUStepを十分に理解する時間ができれば、GNU / Linuxに簡単に移植できると確信しています(それがなくても、ゲームを実行するためのクラスを作成できます)。

基本言語と基本的なランタイム(可能であればプロパティを含む)に興味があります。必要な範囲で簡単に書くこともNSObjectできます。


その間に、私はなんとかObjective-Cコードをコンパイルし、このためのガイドを書きました:

以下の私の答えに詳細があります。

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

c++ - Objective-C の iostream と sstream

一部の C++ コードを Objective-C に移植しようとしています。と が含まれていますiostreamsstream、Objective-C はこれらを認識しません。何をすべきですか?