赞
踩
看这篇文章之前,你得先确保你知道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++语句了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。