c/c++语言开发共享关于在Objective-C中包装C库的提示

我有一个用C语言编写的库,我想在Objective-C应用程序中使用,无论是在Mac还是iPhone上。

不幸的是,由于这个库是由开源空间中的个人编写的,因此文档非常稀疏且不完整。 虽然我可以弄清楚如何使用库中的东西,但我并没有真正了解整个代码库。

我想要做的是将库包装到Objective-C中的一些易于使用和可转移的类中。

任何和所有的帮助将不胜感激,谢谢!

    我自己已经做过几次了。 这可能很有趣 – 这是你修复(或至少隐藏)不良代码的机会!

    你可以使用Doxygen来获得代码的可视层次结构(虽然我只将它用于C ++库,它也适用于C),或者任何其他免费工具。

    如果没有很好地设计或记录库,请不要像底层库那样构造包装器类。 您有机会考虑用户的观点以及他们将如何使用代码。 首先编写您的测试用例以解决这个问题,和/或与已经使用该库的人交谈。

    与您正在做的事情相匹配的两个不错的设计模式是Adapter和Facade 。

    首先,请记住:C库一个Objective-C库。 实际上你根本不需要进行任何包装,尽管你可能想要库接口特别麻烦。

    其次,如果您决定要编写库包装器,请保持简单。 确定您实际计划使用的库的核心function,并考虑如何最好地为这些function和这些function提供接口,并考虑到您的预期用途。 设计一个您想要使用的接口,然后通过库实现它。

    由于ARC(自动引用计数)已添加到Apple编译器和库中,因此Objective-C和C不再可以自由替换。 ( 这里是ARC文档和教程的列表。)您需要更彻底地考虑内存分配问题,并且您可能只想“桥接”库。 请参阅此SO问题以及其中的一些链接,了解Apple如何在Obj-C和C库之间架起桥梁。

      以上就是c/c++开发分享关于在Objective-C中包装C库的提示相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/545796.html

      (0)
      上一篇 2021年1月10日
      下一篇 2021年1月10日

      精彩推荐