Objective-CとC++を混在させる必要があります。私はすべてのC + +のものを1つのクラスの中に隠して、他のすべてのクラスをObjective-Cに明示します。問題は、インスタンス変数としてC++クラスをいくつか使いたいということです。つまり、ヘッダーファイルに記述する必要があります。ヘッダーファイルは他のクラスに含まれており、C++はアプリケーション全体に広がり始めます。私が今までにできる最善の解決策は次のようなものです:Objective-Cクラスのインスタンス変数としてのC++クラス
これは機能します。実装ファイルはmm
という拡張子を持ち、Objective-CとC++を混在させてコンパイルします。#ifdef
はC++のロックを解除します。他の純粋にObjective-Cクラスがヘッダーをインポートすると、C++のものは隠され、クラスは特別なものを見ません。これはハックのように見えますが、より良い解決策がありますか?
それは私が、私は同じ問題を抱えていたときに出ているものを基本的にです:
は、より詳細かつ++にObjCについて長々と語るポッドキャストなどの情報へのさらなるリンク、このスレッドを参照してください。しかしifdefに注意してください。非cppブランチのためにパディングを挿入する必要があります。それ以外の場合、コンパイラはあなたのFooオブジェクトのサイズを知りません。これは非壊れやすいインスタンスvarビルドでは破らないかもしれませんが、古いスタイルのターゲットでは間違いなく問題です。 –上記のアプローチをコピーしました。かなり素晴らしく簡単でしたが、それはいくつかの狂ったメモリ破損の問題を引き起こしました:http://stackoverflow.com/questions/2458652/objective-c-insanity-simple-assignement-to-a-single-float-variable-results – morgancodes