OC和Swift混合开发需要做的准备

上一篇中,我描述了swift工程框架的搭建,正好现在公司重新定需求开发项目,我准备用swift来完成,也好巩固一下我的swift,但是在使用过程中,我们发现,有一些第三方是没有swift版本,所以我们需要导入一些OC文件,来实现混合开发

oc中使用swift

首先,在工程的 Build Settings
中把 Defines Module
设为 YES
.

OC和Swift混合开发需要做的准备


然后,把 Product Module Name
设置为项目工程的名字

OC和Swift混合开发需要做的准备


最后一步,在你的OC文件中导入 ProjectName-Swift.h

OC和Swift混合开发需要做的准备

注意:ProjectName-Swift.h 这个文件是系统自己创建的,千万不要手动创建。


在swift中使用oc

Swift代码引用OC,需依靠 Objective-C bridging header
将相关文件暴露给Swift。
创建 Objective-C bridging header
有两种方法:
1、当你在Swift项目中尝试创建OC文件时,系统会自动帮你创建 Objective-C bridging header
.

OC和Swift混合开发需要做的准备
OC和Swift混合开发需要做的准备
OC和Swift混合开发需要做的准备


此时除了 .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
文件的设置,路径必须指向文件本身,而不是目录!

OC和Swift混合开发需要做的准备