OC和Swift混编一

OC工程下混编

Swift工程下混编请查看OC和Swift混编二

1.建一个OC工程命名为OCTestSwift


image.png

2.配置工程

  • 设置Defines Module 为Yes


    image.png
  • 设置Product Module Name 为当前工程名


    image.png

注意:此时系统会为工程创建一个“工程名-Swift.h”的文件,此文件不可手动创建,必须使用系统创建的

3.新建一个OC文件命名为OCClass

#import <Foundation/Foundation.h>

@interface OCClass : NSObject

- (void)test3;

@end
#import "OCClass.h"

@implementation OCClass

- (void)test3{
    NSLog(@"Swift调用OC方法");
}

@end

4.新建一个swfit文件命名为SwiftClass.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h”


image.png

image.png

image.png

SwiftClass代码

import UIKit

class SwiftClass: NSObject {
    
    func test1()
    {
        print("OC调用Swift方法")
    }
    //swift调用oc方法
    func test2()
    {
        let funOC = OCClass()
        funOC.test3()
    }
}

5.在OC文件中调用swift(ViewController代码)

注意:在调用方法时如果没有提示,可先编译一下

#import "ViewController.h"
//系统生成头文件(command+鼠标左键可点进去查看)
#import "OCTestSwift-Swift.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    SwiftClass *swiftClass = [[SwiftClass alloc]init];
    //OC调用swift方法
    [swiftClass test1];
    //调用此方法,以便于swift调起OC文件方法
    [swiftClass test2];
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

总结: 在OC工程中实现了互相调用功能
ViewController(OC)--->SwiftClass(Swift)--->OCClass(OC)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容