美文网首页iOS开发
Swift与OC的相互调用

Swift与OC的相互调用

作者: 刘勇虎 | 来源:发表于2018-06-20 18:09 被阅读11次

Swift经过四年的发展已经趋于成熟,是时候学一下了,感谢公司swift大佬的不吝赐教。心有所感记录一下,如有不足欢迎指正批评。

新建swift项目

新建swift项目

新建Swift、OC类文件

可在新建OC文件时,建立桥接头文件,也可以自己新建桥接头文件。


新建Swift、OC类文件

如果没有创建桥接文件,

1.创建头文件: HeaderFileForSwiftAndOC.h
2.找到路径: 项目target -> Bulid Settings -> Objective-C Bridging Header
3.填写:$(SWIFT_MODULE_NAME)/HeaderFileForSwiftAndOC.h

在swift文件与OC文件中填写代码

OC

OCClass.h

#import <Foundation/Foundation.h>

@interface OCClass : NSObject
- (void)ocFunction:(NSString *)str;
@end

OCClass.m

#import "OCClass.h"
#import "SwiftAndOC-Swift.h"//新建swift项目时默认创建,包含了所有swift文件引用
@implementation OCClass
- (void)ocFunction:(NSString *)str{
    NSLog(@"\noc func par - str = %@",str);
    SwiftObj *swiftObj = [[SwiftObj alloc]init];
    [swiftObj swiftFuncWithPar:@"OC -> swift"];
}
@end

Swift

ViewController.swift

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let ocObj = OCClass();
        ocObj.ocFunction("swift -> OC");
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

SwiftObj.swift

import UIKit

class SwiftObj: NSObject {
    @objc func swiftFunc(par:String){//@objc 很重要 必须写 不然oc调用时找不到该方法
        print("swift func par = \(par)");
    }
}

运行项目

控制器打印

2018-06-20 18:01:19.346937+0800 SwiftAndOC[6803:243390] 
oc func par  = swift -> OC
swift func par = OC -> swift

   
   
   

友情链接:

技术博客        简书主页

相关文章

  • OC与Swift混编

    OC与Swift混编 一.objectivec与Swift相互调用对照 OC interface文件如下 转换后对...

  • Swift类与OC类相互调用

    这里将使用Xcode 8.0演示Swift与OC类的相互调用 - Swift项目中调用OC类 1.首先在Swift...

  • Swift 闭包(二)

    OC Block 和 Swift 闭包相互调用 我们在 OC 中定义的 Block,在 Swift 中是如何调用的...

  • ios 基础知识整理(一)

    一、Swift 和OC 如何相互调用? 1.Swift 调用 OC代码 需要创建一个 Target-BriBrid...

  • Swift超基础语法(OC与Swift互用篇)

    OC与Swift的相互调用 总有一些迫不得已的情况,让我们不得不在Swift中使用OC代码,或是在OC中使用Swi...

  • Swift 与 OC 用字典互传 Block

    这种情况我是在用 CTMediator 时 Swift 与 OC 相互传值回调用到的,记录一下。 1.OC 给 S...

  • OC与Swift 相互调用

    随着swift越来越被开发者使用,swift也越来越受欢迎。在实际开发中,难免会用到oc和swift一起混编开发的...

  • Swift-Basic Learning

    1. Siwft与OC混编 OC调用SWIfFT SWIfFT调用OC 2. Swift用cocoapods管理...

  • Swift与OC的相互调用

    Swift经过四年的发展已经趋于成熟,是时候学一下了,感谢公司swift大佬的不吝赐教。心有所感记录一下,如有不足...

  • Swift与OC的相互调用

    在Swift中使用OC 将文件名改为-bridging-Header,选中Targets中的项目名,自行修改为需要...

网友评论

    本文标题:Swift与OC的相互调用

    本文链接:https://www.haomeiwen.com/subject/lsvxyftx.html