1

Objective-Cでガベージコレクションを有効にしたプログラムを作成しています。それは特定のサードパーティのC++ライブラリに依存していますが、そのヘッダーはObjective-C++としてコンパイルされません。そのため、Objective-C++で純粋なC++コードを大量に使用しています。Objective-CガベージコレクションとC++

私はC++にObjective-Cのオブジェクトを渡しできるように、ブリッジでのこの種のものをした:

#ifdef __OBJC__ 
    @class NSManagedObjectID; 
#else 
    typedef void NSManagedObjectID; 
#endif 

私の推測では、C++が目的の何も知らないよう、これは、行うには正しいことではないということです-Cのガベージコレクション。 Objective-C側で何もしていないのにC++側が参照を保持している場合(と私はそれをしたいと思う)、私はぶら下がりポインタで終わるだろうか?

もしそうなら、これに対処する正しい方法は何ですか?

+0

詳しい情報が必要とされ、これはかなりある。そして、(「これらのキャストはARCコントロールの内外にオブジェクトを転送するために必要とされる」)何を私が探していることはキャストをブリッジされているようですトリッキーなエリア。 – Arafangion

+0

詳細は何ですか?私は物事を意図的に曖昧にして、私が重要だと思ったものを与えました。 – Xtapolapocetl

+0

うーん、ObjCオブジェクトをvoid *にキャストするのは比較的簡単ですが、void *に未処理のC++オブジェクトをキャストできず、オブジェクトの存続期間を管理することはできません。 – Arafangion

答えて

関連する問題