iOS_OC和Swift的相互调用

1 Swift中调用OC

想要在Swift工程中调用OC,那么就需要一个桥接声明文件,这个文件用来告诉Xcode 把这个桥接文件中imoprt的类编译转换成Swfit的类,下面介绍下如何创建桥接文件。

在Swift的工程中随意创建一个OC的类,在最后点了Create之后,xcode会自动弹框询问,简单翻译一下:“正在给Swfit工程添加OC的类,是否需要生成桥接文件”。点击Create Bridging Header就会自动生成一个桥接文件。

然后只要在桥接文件中impor你想用的OC类,就可以在Swfit中愉快的调用啦

 

2 OC中调用 Swift

反过来OC中调用Swfit其实也类似,首先在OC工程中创建一个Swift类,同样在Xcode提示的时候选择创建桥接文件。之后的步骤就不太一样了,首页在工程配置中将 Defines Module 设置为 YES



再检查下 Product Name 是否为英文 如果不是就改一下 一般设置为工程名 

做完以上几个步骤之后 xcode就帮我们生成了一个头文件 Swift_OC-Swift.h  前面的Swift_OC就是设置的Product Name 后面是固定的,虽然工程目录下搜不到这个头文件,但也不影响我们的使用。在需要调用Swfit的OC类中 import下这个头文件 就可以愉快的使用 项目中所有的Swift类了。不过要注意的是 想要能被OC识别的Swfit类必须是继承于NSObject,想要在OC中调用的方法 前面要加上 @objc的声明。

到这里可能有小伙伴会有疑问  如果是OC中调用Swfit  xcode帮我们创建的桥接文件好像没有用到  因为这个文件中并没有 import任何东西   我一开始也是这么想的  并且主动删除了这个文件  也把配置中这个文件的路径设置清空   不过Xcode就编译不通过了  具体原因还不懂  有了解的朋友  希望留言告知下。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值