OC 和Swift互相混编调用

此方案是swift3,现在swift4出来了,估计不适用了 ,特此声明,最近有点忙(出轨去了) 没法实时更新了,抱歉

一 ) OC 添加swift 文件,Swift调用OC

  • 1)已有的OC项目new file 创建swift 文件
  • 2)出现如下所示的弹框
    配置oc桥接头文件的提示
    ZhuRenWong-Bridging-Header
  • 3)点击Create Bridging Header
  • 4)自动生成 如下文件
OC 和Swift互相混编调用_第1张图片
Snip20160714_2.png
  • 5)桥接文件中添加OC的.h文件(如上图所示)
  • 6)swift 文件中调用OC 方法 如下图所示
    OC 和Swift互相混编调用_第2张图片
    Snip20160714_3.png

    附代码:swift调用OC
//
//  test.swift
//  ZhuRenWong
//
//  Created by HLH on 16/7/14.
//  Copyright © 2016年 qitian. All rights reserved.
//

import Foundation

class learnSwift : NSObject{
    func logStr(str:String){
        NSLog("这是一swift 的log:%@", str)
        let qtcom = QTCommonTools()
        qtcom.showAlert("henhao");
    }
}

二) OC中调用Swift 方法

  1. 在OC 文件中引入头文件
    #import "ZhuRenWong-Swift.h"其中ZhuRenWong是项目的名称,后面的-Swift.h 是固定的写法
  2. 写OC的代码
    创建对象
#import "ZhuRenWong-Swift.h"

- (void)testSwift{
  //learnSwift 是Swift类
    learnSwift * learnS = [[learnSwift alloc] init];
    [learnS logStr:@"code from oc"];
}

如图所示


OC 和Swift互相混编调用_第3张图片
OC调用Swift
  • 上述方法亲测都可以编译通过.

导入ZhuRenWong-Swift.h就可以使用swift 类的原因?

答:我们创建一个类,在ZhuRenWong-Swift.h中会生成OC对应的类,xcode为我们做了转化,所以我们只需要导入ZhuRenWong-Swift.h就可以引用swift中的类
详情如下图所示

OC 和Swift互相混编调用_第4张图片
ZhuRenWong-Swift.h

好文推荐:
在oc项目中添加swift文件,并设置oc-swift混编


  • 作者开发经验总结的文章推荐,持续更新学习心得笔记
    Runtime 10种用法(没有比这更全的了)
    成为iOS顶尖高手,你必须来这里(这里有最好的开源项目和文章)
    iOS逆向Reveal查看任意app 的界面
    JSPatch (实时修复App Store bug)学习(一)
    iOS 高级工程师是怎么进阶的(补充版20+点)
    扩大按钮(UIButton)点击范围(随意方向扩展哦)
    最简单的免证书真机调试(原创)
    通过分析微信app,学学如何使用@2x,@3x图片
    TableView之MVVM与MVC之对比
    使用MVVM减少控制器代码实战(减少56%)
    ReactiveCocoa添加cocoapods 配置图文教程及坑总结

你可能感兴趣的:(OC 和Swift互相混编调用)