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+滑鼠左鍵檢視該檔案