OC與Swift混編問題 Int 枚舉類型無法轉換


 今天,工作的時候,遇到OC調用swift中代碼的問題,特意上網查了查,現在自己總結如下:

 以新建一個項目為例: OCAndSwift 

 1. 項目創建的時候,選擇的時候Objective-C語言

 2. 創建了一個SwiftUser.swift文件,內容如下:(可忽略)

 3. 這時,我們在 ViewController.m中調用剛剛創建出來的 SwiftUser.swift文件,這是會看到如下提示:

 4. 問題出現了,那我們要怎么才能調用swift格式的文件呢???

    解決如下: 引入文件  OCAndSwift-swift.h,即可

5. 有沒有小伙伴會有疑問說,這個是什么文件啊? 為什么是這個文件啊?

  哈哈,通過查閱資料了解到,這個就是所謂的橋接文件,關於文件名的命名,是這樣的,

  targets->build settings ->packaging->Product Module Name

通過,這些配置,就可以查詢到橋接文件名稱

7. OCAndSwift-swift.h,默認后綴 -swift.h。文件中的內容為自動生成,無需程序員手動修改,通過 command + 鼠標左鍵,即可查詢到里邊的內容

  另外,今天遇到一個問題,當我在 SwiftUser.swift 文件中,創建 Int 類型變量時,OCAndSwift-swift.h 並不會幫我自動生成對應的屬性字段。

       經過測試,發現 枚舉 類型也無法轉換

  解決辦法:我們可以通過方法傳參的方式,如下:定義的 SettingAge(age:Int) 方法,這樣就可以傳遞Int類型

 

==============================我是分割線=============================================

Swift 中調用 OC 代碼,這個比較簡單,

1. 創建橋接文件

  OCAndSwift-Bridging-Header.h, 導入所需要的 #import "xxx.h" 文件

2. 配置文件

     targets->build settings ->packaging->Object-C Bridging Header      

3.之后就可以隨心所欲的調用了,在每次新創建出來 oc.h 文件時,都需要手動向橋接文件中添加 #import "xxx.h",略顯麻煩。

 


免責聲明!

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



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