1.首先我们建立一个Swift项目如下图:
2.然后在建立一个SwiftTest.swift文件,这个文件是之后做OC文件调用Swift文件测试用的.
3.在这个Swift项目里面然后建立一个OC文件如下图所示(注意一定是Objective-C):
4. 接下来你会看点下面这个界面出现
看到这个界面之后,点击Create Bridging Header,创建成功,你会神奇的发现工程中多了一个 xxxx-Bridging-Header.h 这个文件, 下图所示
然后我们在Bulid Settings里面看看xxxx-Bridging-Header.h这个配置,如果出现下面这个图就完事了,就可以继续下面的配置了
接下来我们Bulid Settings 中配置Defines Module这些东西为YES即可
5. 到这里我们的所有准备工作都已经完成了, 下面是我们先测试Swift文件中调用OC文件的内容,首先我们现在xxxx-Bridging-Header.h中导入我们的"ShufTest.h",直接#import "ShufTest.h"就OK了, 先在ShufTest中设置一个属性,我们在RookieViewController.swift中打印出来:
ShufTest.m文件代码
```
- (NSString *)name{
if (_name == nil) {
_name = @"Rookie";
}
return _name;
}
```
RookieViewController.swift文件代码
```
super.viewDidLoad(){
// 这里调用ShufTest类中的属性
let test1 = ShufTest()
print(test1.name)
}
```
下图是打印结果:
6.然后我们在ShufTest类中调用SwiftTest.swift这个类中的test方法,然后在RookieViewController.swift调用ShufTest这个类,打印出swift这个类中的test方法里的内容, * 这里先要在ShufTest.m文件中导入#import "RookieTest-swift.h", 这个文件名为 Product Name(工程名) 加 -swift.h
SwiftTest.swift中代码
```
func swiftTest(){
print("我是swift类中的方法")
}
```
ShufTest.m中代码
```
+ (void)test{
SwiftTest * test = [[SwiftTest alloc]init];
[test swiftTest];
}
```
RookieViewController.swift中代码调用
```
override func viewDidLoad() {
super.viewDidLoad()
ShufTest.test()
}
```
打印结果如下图:
例外说一下,在Swift中使用OC的三方框架,都是用Bridging - header来引入使用的. 看完点赞...😊😊😊
网友评论