iOS混编

1.Swift项目调用OC文件

关键点:创建桥接文件
步骤:
1.在项目中首次创建OC文件时,系统会提示是否创建桥接文件

iOS混编_第1张图片
image.png

点击 Create Bridging Header 系统会自动创建桥接文件
系统创建的桥接文件的名称为 "项目名称-Bridging-Header"
2.如果第一次提示你没创建或者删除了桥接文件后想再创建就只能手动创建桥接文件了
手动创建桥接文件:Targets -> Build Settings -> 搜索框输入swift,
Objective-C Bridging Header中的值设置为 项目名称/项目名称-Brigding-Header.h (写相对路径,不然编译时会报错),如图
iOS混编_第2张图片
image.png

再创建名为"项目名称-Bridging-Header"的Header File文件

在桥接文件中添加OC头文件 #import "头文件名.h"
例如:#import "Student.h",即可在Swift项目中调用Student中OC代码了

2.OC项目调用Swift文件

与Swift项目调用OC文件一样需要创建桥接文件,且方法相同

只是引用Swift文件时不同
在需要调用Swift文件的类中引用如图头文件


image.png

上图中10那个文件,项目中是看不到的,这个文件是生成桥接头文件自动生成的,名字是 项目名-Swift.h(不要自己去手动创建),没有代码提示,需要我们手动敲
11对应的则是我们创建的桥接文件,有代码提示

导入Swift第三方库如socket.io-client-swift,chart在桥接文件中添加@import SocketIO;@import Chart;

3.Swift/OC项目调用C文件

步骤:
1.创建桥接文件,同上
2.创建与C文件同名h文件,在h文件中把C文件中方法进行声明,在c文件中导入h文件
3.在桥接文件中引入h文件(OC可选择在调用C文件代码的类中引入),即可在Swift/OC中调用C文件中方法
具体如图所示:


iOS混编_第3张图片
c文件.png

iOS混编_第4张图片
h文件.png

iOS混编_第5张图片
swift文件.png

iOS混编_第6张图片
oc文件.png

iOS混编_第7张图片
打印结果.png

PS: 官方的Swift调用OC、C的API介绍:Using Swift with Cocoa and Objective-C

你可能感兴趣的:(iOS混编)