C+的潜在电弧保持循环+;助手类? 我将C++库集成到一个IOS应用程序(Objic C)中,它使用抽象类来实现事件处理程序模式。 为了接收事件,我需要实现C++类。除非我缺少了一些东西,我一直在实现C++类来实现抽象接口,然后将实例保持在Objtovi-C类中,这样我就可以在它上调用选择器。
这里有一个例子C+的潜在电弧保持循环+;助手类? 我将C++库集成到一个IOS应用程序(Objic C)中,它使用抽象类来实现事件处理程序模式。 为了接收事件,我需要实现C++类。除非我缺少了一些东西,我一直在实现C++类来实现抽象接口,然后将实例保持在Objtovi-C类中,这样我就可以在它上调用选择器。,c++,objective-c,automatic-ref-counting,objective-c++,C++,Objective C,Automatic Ref Counting,Objective C++,这里有一个例子 @implementation MYClass : NSObject { CppHelper * _helper; } - (id)init { if(self = [super init]) { _helper = new CppHelper(self); } } - (void)dealloc { delete _helper; } @end 我的问题是,通过C++构造函数传递自我>代码>创建一个强大的弧引用,
@implementation MYClass : NSObject
{
CppHelper * _helper;
}
- (id)init
{
if(self = [super init])
{
_helper = new CppHelper(self);
}
}
- (void)dealloc
{
delete _helper;
}
@end
我的问题是,通过C++构造函数传递<代码>自我>代码>创建一个强大的弧引用,这样我的Objc类将保持在自己的位置上?
使用\u桥接void*
并将ObjC类存储为void*
会缓解此问题吗?C++类的生存期是与父Objc类绑定的。
谢谢 是的,您的自我保留在CPP帮助器构造函数中。 我不喜欢弧使简单的指针变强。 您可以定义
\u弱MYClass*\u父级代码>以避免保留循环
另外,为什么不使用objective-C:@protocol
`s?的抽象接口呢?通常我会使用@protocol,但库已经存在,我必须与它接口
class CppHelper : public AbstractLibraryInterface
{
private:
MYClass * _parent;
public:
CppHelper(MYClass * objCParent)
: _parent(objCParent)
{ }
onEvent()
{
[_parent handleEvent];
}
};