我想在我的混合C ++ / ObjC项目中进行某种转发。
我的逻辑是在C ++中,我想提供一个属于C ++对象实例的方法作为objC的选择器。反正有吗?
主要的问题是,无论如何将C ++方法伪装成选择器:),将它提供给ObjC并让它被回调?。
提前致谢, Anoide。
答案 0 :(得分:3)
不可能获得C ++方法的选择器,因为它们不是由Objective-C运行时管理的。但是你可以:
答案 1 :(得分:0)
您可以将C ++对象包装在Objective-C代理对象中:
@interface MyObjCClass: NSObject {
MyCPPClass *thing;
}
-(int)foo;
@end
@implementation MyObjCClass {
-(id)init {
if (self = [super init]) {
thing = new MyCPPClass();
}
return self;
}
-(void)dealloc {
delete thing; // It's been a long time since I last did C++; I may have the incorrect syntax here
[super init];
}
-(int)foo {
return thing->foo();
}
}
@end