OC 和Swift互相混编调用

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

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

  • 1)已有的OC项目new file 创建swift 文件
  • 2)出现如下所示的弹框
    配置oc桥接头文件的提示
    ZhuRenWong-Bridging-Header
  • 3)点击Create Bridging Header
  • 4)自动生成 如下文件
Snip20160714_2.png
  • 5)桥接文件中添加OC的.h文件(如上图所示)
  • 6)swift 文件中调用OC 方法 如下图所示
    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
  • 上述方法亲测都可以编译通过.

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

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

ZhuRenWong-Swift.h

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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容