OC/Swift/C/C++混合使用的编程姿势

一,OC调用C语言方法

1.OC中的.m文件对C语言完全兼容,可以直接导入C头文件,进行使用

2.定义一个.c的C语言文件,在.m文件中导入,就可以使用。

二,OC调用C++语言方法

1.需要将.m文件后面再加一个m,改成.mm文件,.mm文件对C/C++完全兼容,导入C/C++头文件就可以使用

2.定义一个.cpp的C++文件,在.mm文件中导入就可以使用了。

三,C++调用OC语言方法

1.在定义的OC类中,若想让C++文件成功进入OC文件,就需要将OC类的.h文件中涉及到OC中的方法全部删掉。然后在.h文件中定义C/C++语言的方法名。在.mm文件中可以用OC/C/C++语言来实现。

四,swift调用C语言方法

swift语言无法直接使用C语言方法,需要通过桥接头文件使用。

1.在swift工程下创建一个C文件同时生成bridging-header桥接头文件。

2.在C语言.h文件中声明方法名,在.c文件中实现方法,在桥接文件中导入C语言文件#include “a.h”

3.在swift文件中使用

五,swift调用C++语言方法

1.在swift工程下创建一个OC文件同时生成bridging-header桥接头文件。

2.在OC语言.h文件中声明方法名,在.mm文件中实现方法,在桥接文件中导入C语言文件#include “a.h”

3.在swift文件中使用

六,bridging-header桥接头文件说明

bridging-header桥接头文件的作用是让swift语言执行oc语言的方法的。

所以里面是oc类的引入#include “oc.h”

同时系统也会创建一个不可见的桥接文件供oc调用swift语言的方法。

这个桥接文件是:工程名-Swift.h。

可以通过在oc类中导入这个头文件,使用swift类中的方法(现在不导入这个文件也可以使用,估计是Xcode做了优化)。