1、oc工程調用swift-----自動創建橋接頭文件
創建一個oc工程:

設置Product Module Name = 工程名

創建一個swift文件:


點擊自動創建橋接頭文件:

設置Objective-C Bridging Header 如下圖:

至此,我們可以在oc中調用swift了
測試代碼:
~~~
import Foundation
class Student: NSObject {
var name : String = "dzl"
var age : Int = 22
}
~~~
在oc中引入頭文件? "工程名-swift.h" 就可以使用swift中的類了
注:這個頭文件是不可見的
~~~
#import "ViewController.h"
#import "OCuseSwift1-swift.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
Student * s1 = [[Student alloc] init];
NSLog(@"%@", s1.name);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
~~~
輸出:
~~~
2015-11-13 10:01:32.250 OCuseSwift1[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+鼠標左鍵查看該文件
- 前言
- swift控制語句,for,while,repeat-while,if,switch
- swift之聲明常量和變量
- swift之數值類型雜談(數值)
- swift之 元組
- oc與swift混編,OC調用swift,swift調用OC
- swift之可選類型
- swift之數組(Array)、集合(Set)、字典(Dictionary)
- swift之switch續(元組,值綁定,where)
- swift之控制轉移語句,continue,break,fallthrough,return,帶標簽的語句
- swift之函數(functions)
- swift之閉包(closure)
- swift之枚舉
- swift之類和結構體
- swift之屬性
- swift之方法(Methods)