1.首先我們建立一個(gè)Swift項(xiàng)目如下圖:
2.然后在建立一個(gè)SwiftTest.swift文件,這個(gè)文件是之后做OC文件調(diào)用Swift文件測(cè)試用的.
3.在這個(gè)Swift項(xiàng)目里面然后建立一個(gè)OC文件如下圖所示(注意一定是Objective-C):
4. 接下來(lái)你會(huì)看點(diǎn)下面這個(gè)界面出現(xiàn)
看到這個(gè)界面之后,點(diǎn)擊Create Bridging Header,創(chuàng)建成功,你會(huì)神奇的發(fā)現(xiàn)工程中多了一個(gè) xxxx-Bridging-Header.h 這個(gè)文件, 下圖所示
然后我們?cè)贐ulid Settings里面看看xxxx-Bridging-Header.h這個(gè)配置,如果出現(xiàn)下面這個(gè)圖就完事了,就可以繼續(xù)下面的配置了
接下來(lái)我們Bulid Settings 中配置Defines Module這些東西為YES即可
5. 到這里我們的所有準(zhǔn)備工作都已經(jīng)完成了, 下面是我們先測(cè)試Swift文件中調(diào)用OC文件的內(nèi)容,首先我們現(xiàn)在xxxx-Bridging-Header.h中導(dǎo)入我們的"ShufTest.h",直接#import "ShufTest.h"就OK了, 先在ShufTest中設(shè)置一個(gè)屬性,我們?cè)赗ookieViewController.swift中打印出來(lái):
ShufTest.m文件代碼
```
- (NSString *)name{
? ? ? ? ? ? ?if (_name == nil) {
_name = @"Rookie";
}
return _name;
}
```
RookieViewController.swift文件代碼
```
super.viewDidLoad(){
//? 這里調(diào)用ShufTest類中的屬性
let test1 = ShufTest()
print(test1.name)
}
```
下圖是打印結(jié)果:
6.然后我們?cè)赟hufTest類中調(diào)用SwiftTest.swift這個(gè)類中的test方法,然后在RookieViewController.swift調(diào)用ShufTest這個(gè)類,打印出swift這個(gè)類中的test方法里的內(nèi)容, * 這里先要在ShufTest.m文件中導(dǎo)入#import "RookieTest-swift.h", ?這個(gè)文件名為 Product Name(工程名) 加 -swift.h
SwiftTest.swift中代碼
```
func swiftTest(){
print("我是swift類中的方法")
}
```
ShufTest.m中代碼
```
+ (void)test{
SwiftTest * test = [[SwiftTest alloc]init];
[test swiftTest];
}
```
RookieViewController.swift中代碼調(diào)用
```
override func viewDidLoad() {
super.viewDidLoad()
ShufTest.test()
}
```
打印結(jié)果如下圖:
例外說(shuō)一下,在Swift中使用OC的三方框架,都是用Bridging - header來(lái)引入使用的. ?看完點(diǎn)贊...??????