如何在内存中保留C++对象?

Ali*_*Ali 4 c++ memory-management objective-c ios

Objective-C类中C++对象的对象生命周期是什么,以及如何将其保存在内存中?

我尝试了不透明的结构,创建实例,但总是导致null.

Jac*_*kin 6

您可以在Objective-C类中拥有一个C++对象,方法new是在init方法中创建一个C++类实例,将其分配给ivar,然后-dealloc调用deleteivar:

@interface SomeClass : NSObject {
  SomeCPPClass *cpp_object;
}
@end

@implementation SomeClass 

- (id) init {
   self = [super init];
   if(self) {
      cpp_object = new SomeCPPClass();
   }
   return self;
}

- (void) dealloc {
  delete cpp_object;
  [super dealloc];
}

@end    
Run Code Online (Sandbox Code Playgroud)