iOS OC中橋接swift第三方庫


swift中有一些比較好的框架,比如繪圖框架charts,最近項目中剛好用到,通過Pod的方式直接導入,xcode會自動生成charts-swift.h的文件,然后在需要導入的地方import <charts-swift.h>即可
但是,通過pod導入的第三方項目如果需要做自定義定制,就沒辦法修改里面的內容,這樣很難受,所以只有不通過pod的方式導入,直接將source文件拖入到工程中,這就涉及到了oc中橋接swift項目的一些問題
使用網上的一些方法和設置並沒能解決我的問題,然后會各種報錯,通過各種嘗試,總算是將oc中橋接swift的問題解決了,一下是解決的步驟

  1. 到github 下載charts官方demo,找到source,將整個source文件拖入到工程中,注意Supporting Files中的文件也一起拖入,將info.plist文件名字修改為chart_info.plist,為了防止和工程中的info.plist文件名沖突

  2. 將source文件拖拽到新的項目中,新建一個swift文件,繼承NSObject,名字隨意,這個時候,xcode會提醒是否創建一個xxx-Bridging-Header.h的swift橋接文件,選擇創建

  3. 在xxx-Bridging-Header.h添加Supporting Files中的.h文件 這里是Charts.h

  4. command + b編譯,這個時候xcode會自動生成一個 ChartsDemo-Swift.h ChartsDemo為你的xcode項目名, 在需要使用到charts的地方,#import <ChartsDemo-Swift.h>即可使用swift中方法和類了

  5. 修改charts中源碼,再command+b xcode又會生產一份新的ChartsDemo-Swift文件 大工告成

  6. 使用

可能遇到的問題:

  1. 需要設置defines module為YES網的很多答案中都提到了這個一點,如果出現一些問題,可以嘗試設置一下,具體位置(我暫時沒有發現設置這個屬性設置YES or NO的區別)

  2. 提示swift版本過低

  3. 添加swift文件時並不主動提示創建橋接文件(一般比老一點的項目好像都會不提示),這個時候就需要手動創建橋接文件了(xxx-Bridging-Header.h)

    • 創建header file文件
    • 命名header file文件名 如果我的工程target名叫TKDemo,所以這里就創建TKDemo-Bridging-Header文件名
    • 設置TKDemo-Bridging-Header在項目中的路徑 如圖位置(路徑根據橋接文件的實際位置來設置) 注意


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM