我的Swift学习之旅--Swift和OC混合编程
用Swift和OC的混合编程开发框架和写一个全新的app会有稍微不同。
一 在app中使用混合编程
1. 在swift项目中使用OC类 需要“Objective-C bridging header”文件
Objective-C bridging header 文件的创建方法有两种
(1)通过cmd+n快捷键创建新类的方法(只要项目类型(Swift或者OC)和将要创建的文件类型不同(Swift或者OC)系统会自动弹出框是否创建这个头文件选择Yes即可)。这种方法不用修改buildSetting设置而且只要项目中第一次出现swift和OC两种代码系统就会自动弹窗。
如下图:
(2)直接通过创建一个头文件的方法创建一个Objective-C bridging header文件(这种方法需要在buildSetting中将Objective-C Bridging header一项中添加你创建的头文件);
如下图:
此种方法的header文件的名字可以任取
2.在OC文件中引入Swift文件
因为在Swift中头文件被集成到Module中,module中的头文件我们是看不到的,但是呢它的名字我们可以知道。在target-buildsettng中找到packaging--product module name项可以看到这个module的名字。
然后在需要导入swift的地方中import "product module name-swift.h"就可以了
写完以后我们也可以cmd+鼠标左键查看这个.h文件了。
总结如下图:

二.在框架中使用
1.同一个框架中将OC导入Swift
(1)在BuildingSetting中Packaging项确定Defines Module setting for framework项设为YES 如图:

(2)将你要导入的OC的头文件放入umbrella header(这个东西就是和库同名的.h文件)
这样放入umbrella header的所有的类都能在swift中使用而不需要再用import头文件了。
2.在OC中引入Swift
(1)在BuildingSetting中Packaging项确定Defines Module setting for framework项设为YES 如图:

(2) 在需要用到swift代码的OC.m文件中用#import <ProductName/ProductModuleName-Swift.h>

浙公网安备 33010602011771号