objective-c++混编

来源:互联网 发布:starbound mac 编辑:程序博客网 时间:2024/06/08 13:55
在已有的OC项目代码中嵌入C++模块注意事项。


1.引用c++代码的m文件改为mm后缀
2.头文件中不引用C++代码文件,可以很大程度降低原有OC代码与C++代码的牵连性。
3.提供给OC调用的接口文件一般是OC与C++代码共存的文件,在OC头文件中需要用到相关类声明和代理协议。有因为头文件不引用C++代码文件的原则。做法首先是在OC代码头文件中可以用@class声明接口文件中的类,在实现文件中import接口文件,实现代码隔离。其次假如OC头文件需要引用接口文件中的代理,,如果直接import接口文件则会引起代码牵连性问题,做法是将接口中的代理与类声明写在不同文件,这样OC头文件就可以import代理文件并使用其中的协议,代理文件中是纯OC代码所以不会引起代码牵连性问题。
4.因此,OC与C++代码共存的接口文件结构至少应该为:代理声明文件xxxDelegate.h,类声明文件。