关于在Objective-C中包装C库的提示

Jas*_*ien 5 c objective-c word-wrap

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

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

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

  • 有没有人有关于如何处理这个问题的任何提示?
  • 有关获得图书馆结构的可视化层次结构的最佳方法的任何建议吗?
  • 我将如何决定如何最好地构造包装器以实现可重用性和易用性?

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

Sha*_*rog 7

我自己做了几次这样的事.这可能很有趣 - 这是你修复(或至少隐藏)不良代码的机会!

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

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

与您正在做的事情相匹配的两个不错的设计模式是AdapterFacade.

  • +1.你应该定义一些很好的接口,你可以先做你想要的,然后使用C库填写实现 (2认同)