上一篇中,我描述了swift工程框架的搭建,正好现在公司重新定需求开发项目,我准备用swift来完成,也好巩固一下我的swift,但是在使用过程中,我们发现,有一些第三方是没有swift版本,所以我们需要导入一些OC文件,来实现混合开发
oc中使用swift
首先,在工程的 Build Settings
中把 Defines Module
设为 YES
.
![](https://i-blog.csdnimg.cn/blog_migrate/2cff03fbbda526bffeac1a04d42f4f01.webp?x-image-process=image/format,png)
然后,把 Product Module Name
设置为项目工程的名字。
![](https://i-blog.csdnimg.cn/blog_migrate/59d1d8d52797f8cc46ecbd766122f05e.webp?x-image-process=image/format,png)
最后一步,在你的OC文件中导入 ProjectName-Swift.h
![](https://i-blog.csdnimg.cn/blog_migrate/91692541fd70955f8d72b8f50ab9fb0a.webp?x-image-process=image/format,png)
注意:ProjectName-Swift.h 这个文件是系统自己创建的,千万不要手动创建。
在swift中使用oc
Swift代码引用OC,需依靠 Objective-C bridging header
将相关文件暴露给Swift。
创建 Objective-C bridging header
有两种方法:
1、当你在Swift项目中尝试创建OC文件时,系统会自动帮你创建 Objective-C bridging header
.
![](https://i-blog.csdnimg.cn/blog_migrate/30d56cb9ef368090b27085f86c08ddd3.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/0ed07b2825e21f2bbb0a0400228f9783.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/2a3f30d2140f6a7b7fb528a6cc82fca6.webp?x-image-process=image/format,png)
此时除了 .h
、.m
文件之外,会额外多出一个叫做 项目工程名-Bridging-Header.h
的文件,这个文件中导入的类是可以暴露给Swift看到的。你要做的,只是#import XXXX
.
2、自己创建 Objective-C bridging header
File > New > File > (iOS or OS X) > Source > Header File
切记,名字 一定要 是 项目工程名-Bridging-Header
.
然后还有一步,在项目的 Build Settings
选项里,要确保Swift Compiler
选项里有这个 BridgingHeader
文件的设置,路径必须指向文件本身,而不是目录!
![](https://i-blog.csdnimg.cn/blog_migrate/501612fcfed6918c5a7cdd4046529c69.webp?x-image-process=image/format,png)