刚好看书的时候看到这里,网上对于桥接的形容也是挺乱的,当年还比拟菜鸟的时候查找这个问题也不是没被坑过,顺便记录一下不便一下其他人。
一、设置桥接文件
不论是 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 文件里进行办法申明(废话)。