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
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对象。