Introduction
在实际开发过程当中,Swift在某些情况运行效率低下,我们需要C++来实现某些功能。这就引入了混编问题。其实Swift不仅可以和Objective-C混编,还可以和C、C++混编。
和Objective-C混编
众所周知,Objective-C需要头文件来开放接口,而要让Swift和Objective-C混编,就需要将Objective-C的方法开放接口给Swift。
具体实现
New File -> Objective-C,系统会弹出弹窗问要不要Create Bridge File,选择Yes。然后在Objective-C文件中import这个Bridge File作为头文件,开放的接口写在Bridge File当中
Objective-C:
1 | #import "xxxxx-Bridge-File.h" |
Header:
1 | #import <Foundation/Foundation.h> |
Swift调用:1
ClassA.testMethod(1.0, 2.0)
关于在项目中的设置
设置部分可以在Build Setting中找到(项目文件中)
C、C++混编的实现
我们会发现,Objective-C的语法糖不多,我们更想要的是C++。而众所周知,Objective-C是可以调用Cpp的,而且将后缀名改为.mm
之后,是Objective-C++,支持C++的方法及语法。全部都不难实现。其实只需要将所有东西分装起来即可。
比如我做OpenCV处理时分装的库:
HQMatProcessor.hpp
:
1 | // |
HQMatProcessor.cpp
:
1 | // |