在oc項目中添加swift文件,並設置oc-swift混編

  1. 在項目中右鍵添加一個swift文件,我添加的LearnSwift.swift

  2. 添加後Xcode彈出‘是否配置oc橋接頭文件’的提示,點確認,系統自動生成一個項目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h

    bridgingheader_2x.png

    配置oc橋接頭文件的提示

  3. LearnSwift-Bridging-Header.h實質上是一個供swift使用的頭文件,在這裏把所有要暴露給swift的oc頭文件都添加進去,這樣寫swift的時候就可以直接使用那些oc的類和方法了。
    因爲swift本身沒有頭文件,只有.swift;而oc有.h和.m文件。有了這個聲明,.swift就可以直接使用oc的.h了

    1240

    我的LearnSwift-Bridging-Header.h文件內容

  4. 接下來就可以直接在LearnSwift.swift中寫swift代碼啦 ~ 隨便聲明一個類,打些log:

    1240

    我的LearnSwift.swift文件內容


    編譯直接通過,這就是在swift中使用oc類和方法了,一切順利!

  5. 在oc中使用swift,我在AppDelegate.m中使用剛纔創建的swift類,那麼先要引用swift頭文件,即#import "LearnSwift-Swift.h",然後在這個.m文件中就可以任意使用swift創建的類和方法了:
    LearnSwift *learnSwift = [[LearnSwift alloc] init]; [learnSwift logsth:@"code from oc"];
    編譯運行直接過! 輸出:
    this is a log from swift : code from oc

  6. 理解下#import "LearnSwift-Swift.h"
    其實是項目名-Swift.h,這也是Xcode自動生成的,根據你寫的所有swift代碼,生成一個oc的.h文件,進行類和方法的聲明,這樣在oc裏引用這個頭文件後,就相當於引用了所有swift聲明,可以直接使用了。

               




原文鏈接:http://www.jianshu.com/p/28b05cca9271/comments/1198449


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章