假设我有两个目标 c++ 对象,每个对象都包装一个给定的本机 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() 返回一个已经声明的 Bcpp 实例(作为 B 实例的实例变量)。所以我持有一个指向 Bcpp 对象的指针,该对象本身就是 B 类型的目标 C++ 对象的实例变量。如何从 Bcpp 的实例中找到 B 的实例?