swift和OC混编

1、OC项目混编Swift

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

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的项目,他们之间互用根据以下资料调整很简单就可以搞定。 在混编的过程中最重要的两个文件...
    f48ac133a97f阅读 229评论 0 0
  • 有时候当我们用到Swift写的第三方库时,就不得不用到Swfit和OC混编。 举个🌰,如果你想在你的工程里用到Ch...
    helloxiaogui阅读 2,382评论 0 6
  • 简介:通过一个简单登录SDK,介绍Swift和OC混编下如何打包和调用SDK github地址:https://g...
    老牛爱吃嫩草阅读 5,844评论 8 5
  • 为什么是我感染李斯特菌, 不止一次的想过,为什么是我?总是在不经意间想起,想起我的宝宝。渴望一个新生命的到来,渴...
    弓长士心阅读 255评论 0 0
  • 细描眉首弄春霞,醉梦人生落秋花。往昔多少事,尽在酒樽中。 --题记 【雾里春秋】 一路走来,燥热的天气不留一点烟...
    深醉眸光阅读 485评论 0 0