Swift与Objective-C与C++混编的问题

看这篇文章之前,你得先确保你知道Swift如何与Objective-C混编,也知道Objective-C如何与C++混编,如果不知道,请百度一发,因为不会细讲。

最近用swift写一个iOS的程序,由于有一部分的算法是用C++写的,只好去琢磨一下怎么用swift来调用C++的算法。

swift调用OC是不难的,你只要在swift的工程里创建OC的文件,系统就会提问帮你生成一个bridging-header,只要在这个bridging-header里import所有要用到的OC的头文件,就可以在swift文件里用swift的语言风格来调用OC类了。

但是C++没法这样子弄。

可是OC是可以与C++完美混编而且可以使用STL,办法就是把OC的.m文件后缀改成.mm,我不知道CPP文件要不要改(其实按理解应该是不用的,因为.mm是把文件定义为Objective-C++文件让OC可以兼容C++),所以我把CPP文件的后缀也改成了.mm,然后在OC类中写一个wraper,然后在里面调用C++的类,封装成几个公共的方法就可以了。

这时再用swift来调用wraper里的方法,就可以执行C++语句了。

你可能感兴趣的:(iOS开发)