关于swift与oc的混编分为两种情况:
1. 在swift项目中引入OC文件
在swift项目中使用oc
的时候需要用到桥接文件,当我们在swift
项目中第一次创建oc类的时候会自动创建一个名为:工程名-Bridging-Header.h
的文件,如果我们不小心删除了这个文件,我们只需要再创建一个名字为:工程名-Bridging-Header.h
的文件,或者创建一个任意命名的.h头文件,然后去项目中的Target -> Build Setting -> Swift Compiler - general
修改一下Object-c Bridging Header
后面的文件路径,设置成刚才创建的文件路径即可,然后在头文件中#import我们需要引用的oc类就可以正常使用了
2.在oc项目中引入swift文件
这个就比较简单了,只需要在要调用swift
文件的类里面按照#import "工程名-Swift.h"
就可以使用swift的类了
tips:在swift4中,并不是所有的函数都暴露给oc使用(这点跟swift3中默认暴露给oc使用有区别),所以我们对需要暴露的函数前面手动添加@objc 来修饰,这样在oc中就可以调用swift的类了(原因是因为swift是静态语言,在编译的时候所有函数都被编译,编译完成,系统会清空那些没有被调用过的类,以此来减少二进制文件。但是 oc是一门动态语言,方法只有在调用的时候才会知道会不会调用,所以,我们在函数之前添加@objc来保留这个方法)
网友评论