swift oc 混编

来源:互联网 发布:utorrent mac 中文版 编辑:程序博客网 时间:2024/06/04 19:20

swift是未来的趋势,最近闲来无事,看了一下swift混编

首先创建OC项目或者Swift项目一个,然后在创建aaa.swift,此时Xcode会自动创建一个桥接文件名字:工程名-Bridging-Header.h

接下来配置工程:

1、

TARGETS ->Build Settings   --->Defines Module为YES

 TARGETS ->Build Settings  ---->Product Module Name ,也可以不设置,默认为工程的名字

2、创建类  aaa.swift

import UIKit

class aaa: NSObject {
    let nihao:String = "hello";
    override init() {
        super .init()
        print(bbb.init().sssss);
        
    }
}

3、在uiviewcontroller中引入swift文件,注意此处要填写第一步的Module Name-Swift.h,也就是#import "工程名字-Swift.h"

#import "ViewController.h"
#import "testSwift-Swift.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    aaa * ss = [[aaa alloc]init];
    NSLog(@"%@",ss.nihao);
    // Do any additional setup after loading the view, typically from a nib.
}

@end

4、若需要在swift中调用OC代码,比如创建bbb.h bbb.m

#import <Foundation/Foundation.h>

@interface bbb : NSObject
@property(nonatomic,strong)NSString * sssss;
@end
#import "bbb.h"

@implementation bbb
-(instancetype)init
{
    if (self = [super init]) {
        self.sssss = @"4567890-";
    }
    return self;
}
@end

则需要在桥接文件中#import "bbb.h",然后在swift中直接用即可,如步骤2中直接在构造方法中创建了bbb对象。