1、oc工程调用swift-----自动创建桥接头文件
创建一个oc工程:
设置Product Module Name = 工程名
创建一个swift文件:
点击自动创建桥接头文件:
设置Objective-C Bridging Header 如下图:
至此,我们可以在oc中调用swift了
测试代码:
importFoundation
classStudent: NSObject {
varname : String ="dzl"
varage : Int =22
}
在oc中引入头文件 "工程名-swift.h" 就可以使用swift中的类了
注:这个头文件是不可见的
#import"ViewController.h"
#import"OCuseSwift1-swift.h"
@interfaceViewController()
@end
@implementationViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
Student * s1 = [[Student alloc] init];
NSLog(@"%@", s1.name);
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
输出:
2015-11-1310:01:32.250OCuseSwift1[1040:20007] dzl
此时swift也是可以引用OC的,只需将swift需要使用的oc类头文件在桥接头文件中引入即可,
2、oc工程调用swift-----手动创建桥接头文件
首先创建一个oc工程,与上面相同
然后创建一个swift文件,但是不选择创建桥接头文件,如图:
然后手动创建桥接头文件,就相当于创建一个普通的头文件一样,只是命名一定要严格按照规则:
工程设置中指定桥接头文件:
经测试,oc引用swift或者swift引用oc都是可以的,测试方法与上面相同,这里不再赘述。
3、swift工程调用-----自动创建桥接头文件 和 手动创建桥接头文件,基本与上面操作一直,不再详述
其实桥接头文件里面引入oc头文件,是为了swift可以访问oc文件,
在oc中引入 工程名-swift.h 文件 是为了oc可以访问swift,但这个文件是不可见的,不过可以通过command+鼠标左键查看该文件