刚好看书的时候看到这里,网上对于桥接的形容也是挺乱的,当年还比拟菜鸟的时候查找这个问题也不是没被坑过,顺便记录一下不便一下其他人。

一、设置桥接文件

不论是objective-c调用swift,还是swift调用objective-c,都须要创立桥接文件,通过桥接文件实现两者的互相调用。
当咱们引入oc或者swift进入另一个语言的我的项目的时候零碎会提醒是否主动创立桥接文件,此时可间接创立。
但除此之外咱们也能够抉择手动创立。此时须要咱们在新建文件里抉择Header File,点击确认创立桥接文件,桥接文件名字个别为:ProjectName-Bridging-Header.h。而后在Build settings里搜寻bridging,找到Objective-C Bridging Header的选项,将该文件的门路填写进去,或者间接拉入。这里的门路最好抉择相对路径的模式(ProjectName/BridgingFileName.h)。
ProjectName为你我的项目的我的项目名,BridgingFileName为桥接文件的名字。

二、桥接办法

oc我的项目调用swift文件

oc我的项目针对swift文件会主动创立ProjectName-Swift.h文件,该文件不须要咱们去做更改,所以当咱们设置完桥接文件之后,只须要在要调用的文件处import该头文件即可,即:import <ProjectName-Swift.h>,其中ProjectName为该项目标工程名。引入该头文件后,即可调用Swift对应的类和办法。

留神点:引入的swift文件须要调用的类和办法须要进行润饰,而后oc我的项目能力调用。可应用@objcMembers间接润饰类,或者也能够应用@objc别离润饰想要调用给oc的办法和属性,而后oc我的项目就可调用swift的相干办法了。

swift我的项目调用oc文件

swift我的项目调用oc文件更为简略,只须要将oc类的头文件导入桥接文件即可,须要调用哪个oc文件就import哪个头文件(#import "ClassName.h")进去。
swift我的项目调用oc的类和办法不须要引入头文件,所以设置完之后能够间接在swift中间接调用oc办法。

留神点:须要被调用的oc文件的办法须要写在.h文件里进行办法申明(废话)。