Objective-C和swift混編

swift推出之後,宣稱能夠在swift中支持原先的oc庫,因此本文介紹如何支持OC類。php

首先建立一個Swift項目,而後建立一個Cocoa Classswift

這裏寫圖片描述

而後建立一個Hello的oc類xcode

這裏寫圖片描述

而後點擊確認後會彈出一個提示窗口markdown

這裏寫圖片描述

這是提示生成一個bridge頭文件,用來把oc的類的頭文件自動包含到swift中。因此點擊yes自動會建立一個名爲SwiftAndOC-Bridging-Header.h的oc頭文件測試

在這個頭文件中把全部要包含的oc類頭文件寫入,則xcode會自動導入到swift中,這裏咱們測試把Hello類導入,因此在SwiftAndOC-Bridging-Header.h中加入以下代碼spa

#import "Hello.h"

而後修改一些Hello.h文件code

#import <Foundation/Foundation.h>

@interface Hello : NSObject
-(void)print;
@end

修改Hello.m文件對象

#import "Hello.h"

@implementation Hello
-(void)print{
    NSLog(@"hello");
}
@end

此時,能夠到swift中直接使用該類,而不須要導入任何文件。並且全部的建立對象,調用方法都是以swift的語法調用。圖片

var hello = Hello()
hello.print()

若是是導入第三方OC庫,則能夠本身手動寫一個橋接頭文件,例如如今建立一個名爲bridge.h的頭文件,在裏面加入it

#import "Hello.h"

這裏寫圖片描述

其中Swift Compiler中的Objectvice-C Bridge Header一項改成本身的所建立的頭文件便可

相關文章
相關標籤/搜索