OC和Swift混编一

OC工程下混编

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

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


OC和Swift混编一_第1张图片
image.png

2.配置工程

  • 设置Defines Module 为Yes


    OC和Swift混编一_第2张图片
    image.png
  • 设置Product Module Name 为当前工程名


    OC和Swift混编一_第3张图片
    image.png

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

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

#import 

@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”


OC和Swift混编一_第4张图片
image.png

OC和Swift混编一_第5张图片
image.png

OC和Swift混编一_第6张图片
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)

你可能感兴趣的:(OC和Swift混编一)