OC和Swift混编一

2018-03-09  本文已影响0人  iOS扫地僧

OC工程下混编

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

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


image.png

2.配置工程

注意:此时系统会为工程创建一个“工程名-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)

上一篇 下一篇

猜你喜欢

热点阅读