是否可以使用 Objective-C 包装器代理 C++ 对象,而无需在 objc 端实现 cpp 对象的所有属性和方法?我正在寻找的是更通用的东西,我确信它适用于每个对象。
MyObjCWrapper *obj = [[MyObjCWrapper alloc] initWithCppObj: myCppObj];
[MyObjCWrapper aCppObjMethod ]; //calling a method not explicitly defined in the ObjCWarapper
继承就不行了。从 C++ 类继承是不可能的 AFAIK。
一种确定的方法是使用反射,但它不一定是最快的。还有什么?代表团?我不太熟悉它,虽然我知道一般原理。
最好的方法是拥有像 JavaScript 中的“原型”机制。通过这种方式,可以简单地将 C++ 实例附加到 Objective-C 的原型上,但这可行吗?我想重载 [] 运算符以及为原型提供适当的“自我”上下文会存在问题。
那么我能做什么呢?