• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

IOS-Swift、Objective-C、C++混合编程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 1、Objective-C调用C++代码

后缀为m文件的是Objective-C的执行文件,而后缀为mm文件的是Objective-C++文件。

直接在Objective-C中是无法调用C++代码的,所以如果需要在Objective-C调用C++语言就需要直接将后缀m文件改为mm,然后就可以调用C++代码了。

Objective-C兼容C,Objective-C++兼容C、C++。

 接下来是在OC工程中创建C++文件,并调用C++的代码:

然后在OC文件中直接用C++的语法调用C++,所以前提是OC语言执行文件后缀是mm文件。

 2、C++调用Objective-C代码

先继续在上面使用的工程中新建一个Objective-C的类,并添加一个简单的实例方法。

但是是不能直接在C++文件中直接调用OC代码的,会直接失败报错的,因为C++引入的是OC类的头文件,这样是无法通过OC语法,所以在OC的.h头文件是不能有任何OC语法,SO不好意思,把上面OC的.h头文件里的代码全部清掉,然后把OC的.m文件后缀改为.mm文件:

然后在C++代码中调用Objective-C代码:

 然后我们来创建Objective-C类,并通过特定的方式来调用:

注意一个容易错误的细节:

如果C++的方法调用后面创建的对象或者方法,会报错,会提示没有声明和定义该对象或者方法,所以要放在后面才能执行通过。这里注意OC的对象调用方法的语法是:[实例对象 方法]。

 3、Swift调用C语言代码

 这一点和Swift调用C++语言代码是一样的,在Swift工程中新建C++或者C语言文件,都会自动生成一个桥梁文件,写好C++代码或者C代码,都要记得把其头文件导入到这个桥梁文件中。然后就可以在Swift文件中直接用Swift语法直接使用C++和C的方法。

4、Swift、Objective-C、C++混合编程

 这里要强调的一点:Swift是不能直接使用C++的代码的,但是可以创建Objective-C文件作为中间人,来调用C++代码。但是有时候设计程序的时候,绝非必要的情况下最好不要这么做,因为C++  ->  Objective-C  ->  Swift  这个过程花时间比较长。如果能通过C语言实现的话,最好直接使用C语言。

有很多有用的库是用C++写的,所以如果Swift需要使用C++的库,就有必要这样了。

具体实践自己另行体会吧。

 

 

 

 

 

 
 
 
 
 
 
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
17.启动swift服务并创建容器和对象发布时间:2022-07-13
下一篇:
【Swift学习】Swift编程之旅(四)基本运算符发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap