与えられたネイティブ c++ オブジェクトをそれぞれラップする 2 つの客観的 c++ オブジェクトがあるとします。
A、B = 客観的 c++ オブジェクト型
Acpp、Bcpp = c++ オブジェクト型
B.mmで
#import "Bcpp.h"
#import "B.h"
@interface B ()
{
Bcpp myBcpp; // declare instance c++ variable of type Bcpp
}
@end
ミリで
#import "Acpp.h"
#import "A.h"
@interface A ()
{
Acpp myAcpp; // declare instance c++ variable of type Acpp
}
@end
@implementation A
// method to return an instance of B from an instance of A (self)
- (B)GetBfromA
{
Bcpp *bfroma = myAcpp.GetBfromA(); // return c++ object
// How do i find the objective C++ object B from its wrapped c++ instance bfroma?
}
@end
これを行う理由は、成熟した C++ データ構造があり、それを目的の C++ オブジェクトでラップしたいからです。最善の方法はありますか?もしそうなら、逆マッピングの問題をどのように解決しますか?
編集: 初期のレスポンダーに感謝しますが、上記で暗示したよりトリッキーな状況があります。関数 GetBFromA() が、(B のインスタンスのインスタンス変数として) 既に宣言されている Bcpp のインスタンスを返すとします。したがって、Bcpp オブジェクトへのポインターを保持しています。このオブジェクト自体は、B 型の目的の C++ オブジェクトのインスタンス変数です。Bcpp のインスタンスから B のインスタンスを見つけるにはどうすればよいですか?