Object-C與Swift混合開發

Object-C做爲Apple的iOS App開發語言服務了不少個年頭,2014年Apple推出了新的編程語言Swift。更高效更安全的口號再次吸引了一大批非iOS開發程序猿進入,小編以爲Swift代替Object-C僅僅是時間問題,在神州這片土地上,畢竟技術普及有些落後。但再有兩年左右時間Swift產品鏈將造成。第三方支持框架逐步無缺。Swift必將成爲iOS開發主流。眼下來看,激進派的現狀Swift與Object-C混合開發。編程

Object-C中調用Swift

如下就給你們分享下Object-C項目下怎樣使用Swift編程。swift

  1. 首先建立一個Object-Cproject安全

  2. 右擊項目名稱。在彈出的快捷菜單上點擊「New File…」菜單項。例如如下圖所看到的。在新建文件對話框中選擇點擊「Cocoa Touch Class」列表項。而後點擊「Next」button,進入下一步markdown

這裏寫圖片描寫敘述
3. 輸入新建類的類名,選擇需要的父類類型。切換編程語言爲Swift,而後點擊「Next」,最後會出現例如如下圖所看到的的對話框,主要提示是否本身主動生成隱藏的橋街頭文件。顯然這裏需要建立,點擊Create Bridging Header ,這樣一個Object-C中就建立了一個Swift類
這裏寫圖片描寫敘述框架

在Swift中寫一個方法測試一下:編程語言

func SayHi()
{
print("Hello,Welcome to call me!")
}

4.在Object-C中調用時需要注意。在類中需要引入隱藏式維護頭文件post

#import 「項目名稱-swift.h」

詳細到咱們這裏就是爲:atom

#import 「BlendSO-swift.h」

5.最後就可以放心地調用Swift類了code

SwiftClass *swift=[[SwiftClass alloc]init];

[swift SayHi];

那Swift項目中怎麼調用Object-C呢?事實上跟上邊比較類似圖片

Swift中調用Object-C

  1. 首先建立一個Swiftproject

  2. 右擊項目名稱,在彈出的快捷菜單上點擊「New File…」菜單項,例如如下圖所看到的。在新建文件對話框中選擇點擊「Cocoa Touch Class」列表項。而後點擊「Next」button。進入下一步

    這裏寫圖片描寫敘述

    3.輸入新建類的類名。選擇需要的父類類型,切換編程語言爲Objective-C,而後點擊「Next」,最後會出現例如如下圖所看到的的對話框,主要提示是否本身主動生成顯式的橋街頭文件,顯然這裏需要建立,點擊Create Bridging Header ,這樣一個Swift中就建立了一個Objective類

    在新建的Objective-C中測試一下:

    ObjectiveCClase.h中
    
    @interface ObjectiveCClase : NSObject
    @property(nonatomic,copy)NSString *name;
    -(id)initWithName:(NSString *)name;
    -(void)SayHi:(NSString *)name;
    @end
    
         ObjectiveCClase.m中
    
    -(id)initWithName:(NSString *)name
    {
            self=[super init];
            self.name=name;
            return self;
    }
    -(void)SayHi:(NSString *)name
    {
       NSLog(@"%@說:Swift,歡迎你調用我!",name);
    }

    4.這裏跟上面不一樣的是需要在顯式橋接頭文件裏增長Objective-C中的類的頭文件名稱,而Objective-C中不用(也無法調呀,因爲是隱式的)

這裏寫圖片描寫敘述

5.最後在Swift中調用Objective-C的類實現OC中的功能

let objective=ObjectiveCClase(name: "Objective-C")
    objective.SayHi("Objective-C")

總結一下:

  1. Swift與Objective-C的互調在前期建立步驟基本一樣

  2. 中期都會提示生成一個橋接文件,都是第一次的時候會提示,再建立就不會再次提示,但二者是有差異的:Objective-C中調用Swift時生成的是隱式的,而Swift調用Objective-C時是顯式的橋接文件

  3. 最後在Objective中調用Swift時需要在所在類上邊加上格式爲#import 「項目名稱-swift.h」的頭文件,而而Swift調用Objective-C時倒是在顯式的橋接文件裏引入Objective-C的頭文件

相關文章
相關標籤/搜索