Swift和OC的混编(一)

本文介绍了如何在Objective-C项目中使用Swift,包括创建Swift文件、修改配置、引入头文件,以及系统自动生成的中转类的使用,特别讨论了在Swift类中引用OC Model的场景。
摘要由CSDN通过智能技术生成

Swift和OC的混编(一)


由于最近swift版本趋于稳定的趋势,本人也一直在研究并尽可能的将swift用于现有的项目中,希望逐渐的替代之前的OC代码。废话不多说,直接上!


1、既然希望在OC中使用swift,那么第一步肯定需要先创建一个swift文件(虽然第一步可能要配置一些东西,这边我们按照常规的思想操作),创建过程中会给出提示
提示是否创建桥接文件

直接点击(Create Bridging Header)即可。之后会生成这样一个文件

桥接文件

测试中发现,只有当swift调用OC类的时候,该文件才会有用。当然,你也可以重新设置它的名称,那么就需要重新设置它的路径

修改桥接文件的路径

当你默认点击create,并且没有做任何修改的时候,该路径是默认创建的。

2、修改swift的相关配置
修改swift相关配置

Defines Module值必须要修改为YES。有文说,swift是以module方式管理的,所以该选项必要要设置为YES

3、在OC中引入相关头文件
OC中引入swift相关头文件

其实,该头文件就是之前所需要记下的(项目名称(默认值)+"-Swift")构成,这时候,就可以在OC类中直接使用swift类了。

4、其实,这时候,系统帮我们自动生成了一个中转类
系统生成的中间类

这是系统根据swift文件所对外公开的方法和属性等生成的一个中间类(上下就是其他swift文件的中间类),所以我们在OC中调swift文件时所使用的语法,其实还是OC语法,并不影响我们使用。

5、swift类中引用OC类
这里我创建了一个OC类型的Model,希望在OC的VC里面配置,然后传给swift类的View。
OC类model

现在就需要用到之前系统所帮忙创建的桥接(我是这么称呼它的~)文件了。
需要在该文件中引入你想在swift中所调用的类的头文件。

桥接文件配置

下面就可以在swift类中直接调用OC类

swift类中使用OC类

在目标swift文件中,直接使用OC类model就不会出错了。至于willSet和didSet方法,这边主要用于类似OC中的set方法(swift也有getset方法),具体会在后面详解。现在就需要在OC类中给该swift类传一个model值过来,并打印出结果。

OC类中给swift类传值
这边再截图一下那个系统帮忙生成的中间类,会看到model这个属性值

所以,只要做好相关配置之后,对于我们而言,使用的还是OC语法。至于哪些属性或者
方法会在系统中间类中生成,会在后面有机会再说,这并不是本篇内容的重点。
下面打印一下我们的传值结果,来验证一下

传值打印结果

可以看出,就到目前而言,我们已经完全可以不去管我们在调用的是否还是swift文件了。因为就现在而言,我们的调用全都是OC语法。
暂时先到这,通篇大白话,如果错误,希望不吝指出,一起共勉!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值