Swift和OC的混编(一)
2017-07-04 19:32
162 查看
Swift和OC的混编(一)
由于最近swift版本趋于稳定的趋势,本人也一直在研究并尽可能的将swift用于现有的项目中,希望逐渐的替代之前的OC代码。废话不多说,直接上!1、既然希望在OC中使用swift,那么第一步肯定需要先创建一个swift文件(虽然第一步可能要配置一些东西,这边我们按照常规的思想操作),创建过程中会给出提示
直接点击(Create Bridging Header)即可。之后会生成这样一个文件
测试中发现,只有当swift调用OC类的时候,该文件才会有用。当然,你也可以重新设置它的名称,那么就需要重新设置它的路径
当你默认点击create,并且没有做任何修改的时候,该路径是默认创建的。
2、修改swift的相关配置
Defines Module值必须要修改为YES。有文说,swift是以module方式管理的,所以该选项必要要设置为YES。
3、在OC中引入相关头文件
其实,该头文件就是之前所需要记下的(项目名称(默认值)+"-Swift")构成,这时候,就可以在OC类中直接使用swift类了。
4、其实,这时候,系统帮我们自动生成了一个中转类
这是系统根据swift文件所对外公开的方法和属性等生成的一个中间类(上下就是其他swift文件的中间类),所以我们在OC中调swift文件时所使用的语法,其实还是OC语法,并不影响我们使用。
5、swift类中引用OC类
这里我创建了一个OC类型的Model,希望在OC的VC里面配置,然后传给swift类的View。
现在就需要用到之前系统所帮忙创建的桥接(我是这么称呼它的~)文件了。 需要在该文件中引入你想在swift中所调用的类的头文件。
下面就可以在swift类中直接调用OC类
在目标swift文件中,直接使用OC类model就不会出错了。至于willSet和didSet方法,这边主要用于类似OC中的set方法(swift也有get和set方法),具体会在后面详解。现在就需要在OC类中给该swift类传一个model值过来,并打印出结果。
这边再截图一下那个系统帮忙生成的中间类,会看到model这个属性值
所以,只要做好相关配置之后,对于我们而言,使用的还是OC语法。至于哪些属性或者 方法会在系统中间类中生成,会在后面有机会再说,这并不是本篇内容的重点。 下面打印一下我们的传值结果,来验证一下
可以看出,就到目前而言,我们已经完全可以不去管我们在调用的是否还是swift文件了。因为就现在而言,我们的调用全都是OC语法。
暂时先到这,通篇大白话,如果错误,希望不吝指出,一起共勉!!!
相关文章推荐
- OC和swift混编包太大
- Swift oc 混编 - oc导入Swift协议
- 初探swift语言的学习笔记九(OC与Swift混编)
- 详解swift和OC以及C语言的混编
- 在oc项目中添加swift文件,并设置oc-swift混编
- OC与Swift混编之Swift中使用OC
- iOS8开发~Swift(五)Swift与OC混编
- IOS --- OC与Swift混编
- Swift & OC 混编 浅析
- swift之OC与Swift混编
- ios-OC和Swift混编调用分类问题
- IOS --- OC与Swift混编(转)
- iOS开发之-- oc 和 swift混编之自建桥接文件
- iOS Swift和OC混编
- Swift&OC混编
- OC与swift混编
- 用Swift与OC混编制作iOS8风格菜单
- swift与OC混编之调用函数
- OC混编swift时EMBEDDED_CONTENT_CONTAINS_SWIFT错误的处理
- OC与Swift混编