如果我们的工程是OC创建的这时候想要使用Swift写的一个第三方,这时候就要使用混编了,当我们创建Swift类的时候会有一个提示,问我们要不要创建一个桥接头文件,一般选择为创建
创建后工程中就会有一个桥接的头文件
然后随意在Swift文件中写一个函数
import UIKit
class SwiftClass: NSObject {
func sayHello(name :String) -> String {
return name + "sayHello";
}
}
在OC类里面调用Swift的方法首先要配置一下工程,在“Build Setting”->"Product Module Name"中添加工程名
重点:在要调用Swift的方法的类中引入
import "工程名-Swift.h"
引入这个类就引入了所有的Swift类
然后就可以调用Swift里面的方法了
#import "ViewController.h"
//引入这个类就引入了所有的Swift类
#import "OCdiaoSwift-Swift.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
SwiftClass *sc = [[SwiftClass alloc] init];
//系统已经把Swift方法转化为了OC方法
NSString *str = [sc sayHelloWithName:@"CF"];
NSLog(@"%@",str);
}
多说一句:
凡是用Swift写的类,如果不继成自NSObject或NSObject 的派生类,那么编译后将不会生成对应的转换类。从而使得OC 中找不到相应的声明。
我们可以进去看一下我们包含的“工程名-Swift.h”
可以看到苹果是怎么做的,是自动生成了对应的OC代码