1、OC项目混编Swift
1)首先用public
标记OC要调用的Swift类的申明
2)然后在要使用的OC模块直接导入swift模块,这里的项目名称必须是真正的项目名称Product Name
,在Building Setting
搜索pack
即可,同时需要设置开关Defines Module
为YES
,swift模块头文件只要系统检测到项目中有一个swift文件,就会自动生成,报错直接command+R就行
//swift代码定义
public class CabinetHomeVC: UIViewController {
override public func viewDidLoad() {
super.viewDidLoad()
setUpUI()
}
override public func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
//OC引入swift模块
#import "项目名称-Swift.h"
2、Swift混编OC
直接在Swift项目添加(在OC项目添加Swift代码同样的反应)
就会跳出添加桥接文件的提示,直接确定添加即可,当让也可以直接手动添加,习惯性的桥接文件命名是xxx-bridge.h
,如果手动添加需要手动设置文件路径,在Building Setting
中搜索brid
即可找到,设置路径是相对于项目文件的相对路径
3、useframework!
用于将OC库导出,如果OC项目使用了useframework!,可能导致错误
1)没有用cocoaspod管理的三方库报错(直接拖入项目的三方框架)
,而且去掉useframework!马上就好了,这样可以考虑把,没有管理的库直接搞到cocoaspod中管理,我遇到了XGPush报处理器架构的错reference...
,直接丢到cocoaspod中即可解决问题
2)如果是pod中的模块出现问题可以尝试将pod引入的模块直接拖入项目