首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++类与目标C类的混合

C++类与目标C类的混合
EN

Stack Overflow用户
提问于 2010-05-25 19:28:16
回答 1查看 995关注 0票数 4

我使用iphone,主要在C++中编码,而在obj-c中使用部分SDK。在需要obj-c类的情况下,可以指定一个C++类吗?例如:

1)将委托设置为obj-c对象时。

  • I不能使C++类派生于代理协议,因此这可能还有其他原因阻止我将C++类作为各种obj-c对象的委托。作为解决方案,我所做的是创建一个obj-c适配器类,该类包含到C++类的ptr,并用作委托(在调用C++类时通知它)。每当我需要将委托通知发送给C++类.

时,编写这些通知都会觉得很麻烦。

2)设置选择器时

  • --它与第1项并驾齐驱。假设我想在完成某件事情时设置一个回调,比如按下按钮或UIView动画功能中的setAnimationDidStopSelector。如果能够为setAnimationDelegate.

指定一个C++函数以及相关的委托,那就太好了。

嗯,我怀疑这是不容易做到的,但如果有人对如何做到这一点有任何建议,或者如何更容易地写出这样的事情,我很想听听。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-26 01:06:04

可悲的消息是,你不能完全绕过适配器,但你可以轻松工作。通过使用Objective运行时库,您可以通过使用声明式方法为您生成适配器来减少混乱。

Objective运行时允许您在运行时构造类,为此可以为方法设置实现函数。因此,通过使用模板,您可以通过生成调用所需的C++方法的蹦床函数,从面向类型的声明中生成一个Objective类。

我前一段时间提到的状态可能在您的情况下已经足够了。可以更好地做到这一点,并且干净地支持属性和分布式对象,但我还没有找到实现更好版本的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2907859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档