gpt4 book ai didi

c++ - 允许 C++ 抽象类使用 Objective-C 委托(delegate)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:46:56 26 4
gpt4 key购买 nike

我有一个抽象类和他的具体类实现。我想做的是在 iOS 应用程序 (Objective-C) 中公开具体类,并使用协议(protocol)将事件分派(dispatch)给 ViewController。

想法是向这个具体类添加一个符合 adHoc 协议(protocol)的 objective-c 委托(delegate)。知道如何实现它吗?

不幸的是,我读到 Objective-C++ 不能继承自 C++ 类。

提前谢谢你。

最佳答案

objective-c ++ 类不能从 C++ 类继承,但它可以包含一个

@interface DelegateObject : NSObject
{
}
- (id) init;
- (void) do_something: (NSObject*) thing;
@end

struct cpp_thing
{
// this could be a template if you wished, or you could take a copy
// or whatever you want
void do_something(NSObject* thing) { };
};

@implementation DelegateObject
{
std::shared_ptr<cpp_thing> _cpp;
}

- (id) init
{
if (self = [super init])
{
_cpp = std::make_shared<cpp_thing>();
}
return self;
}

- (void) do_something: (NSObject*) thing
{
_cpp->do_something(thing);
}

@end

关于c++ - 允许 C++ 抽象类使用 Objective-C 委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com