OC引入Swift,混编

一、OC中引入Swift

最近在研究swift时候,需要实现OC与Swift混编,因此总结了以下几个步骤实现OC中引入Swift。
下面说一下详细的步骤:
1.创建一个 ''aaaa'' 的 OC 的工程。
2.创建一swift文件。


OC引入Swift,混编_第1张图片
创建一个swift文件

3.创建一个名字为"LearnSwift"的swift文件。


LearnSwift.png

4.在创建的过程中会显示如下:
OC引入Swift,混编_第2张图片
是否添加桥接文件

5.点击"Create Bridging Header",这时就会创建成功。(ps:一般情况下,要是OC中引入Swift的话不用创建这个桥接文件也没事)。
6.为了引入swift文件中的东西,我先在LearnSwift中创建如下两个类:
class LearnSwift :  NSObject {
    func logsth(strToLog:NSString)  {
        NSLog("年轻人我跟你说,想当年我装逼的时候你还是一滴液体");
    }
}

public class Test: NSObject {
    public func log() {
        print("这是Swift的方法")
    }
}

7.我在"ViewController.m"里面,引入如下头文件。
#import "aaaa-Swift.h"(PS:格式必须正确#import "工程名-Swift.h",我创建的''aaaa''工程)。

8.在 我的工程 -> Buid Settings -> Packaging ->Dedines Module (改为" YES ")
效果如下:


OC引入Swift,混编_第3张图片
设置

9.在@implementation之前(或者在@interface之前),引用LearnSwift 里面 的类时.(PS:一般引入类是继承的NSObject)

LearnSwift *learnSwift;
Test *test;

10.在-(void)viewDidLoad { }方法里面:

- (void)viewDidLoad {
    [super viewDidLoad];

    learnSwift = [[LearnSwift alloc]init];
    [learnSwift logsth:@"asaad"];
    NSLog(@"**************************************\n");
    test = [[Test alloc]init];
    [test  log];
    NSLog(@"**************************************\n");
}

打印结果如下:


打印结果

11.在ViewControlle.m文件里面添加如下:

OC引入Swift,混编_第4张图片
总体

二、Swift中引入OC

直接在桥文件里面写上需要引入的类名的 .h文件即可,如下:


OC引入Swift,混编_第5张图片
Swift引入OC

参考链接 :
1.http://www.jianshu.com/p/4de0dff6c182
2.http://www.jianshu.com/p/1ca12a7a816f

你可能感兴趣的:(OC引入Swift,混编)