1. 程式人生 > >oc與swift混編,OC呼叫swift,swift呼叫OC

oc與swift混編,OC呼叫swift,swift呼叫OC

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