swift和OC混编

1、OC项目混编Swift

1)首先用public标记OC要调用的Swift类的申明
2)然后在要使用的OC模块直接导入swift模块,这里的项目名称必须是真正的项目名称Product Name,在Building Setting搜索pack即可,同时需要设置开关Defines ModuleYES,swift模块头文件只要系统检测到项目中有一个swift文件,就会自动生成,报错直接command+R就行

swift和OC混编_第1张图片
Snip20170420_9.png
//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引入的模块直接拖入项目

你可能感兴趣的:(swift和OC混编)