Swift和OC混合使用


Swift and Objective-C in the Same Project
在項目里交叉使用Swift和OC

Swift與OC的兼容性使得你可以在項目里使用Swift+OC的方式編寫應用程序,稱為混合+匹配(mix and match),用這種方式可以一邊使用享受新語言的快速特性,一邊無縫的接合你已有的OC代碼(原文聽起來好NB的樣子,其實也就那么回事),不管項目最初是用OC編寫的還是新建的Swift項目,都可以在這個項目里用OC和Swift混合繼續開發



Importing Objective-C into Swift

在Swfit代碼中添加OC文件的時候,需要依賴一個bridging header文件,Xcode會在你新建一個OC文件的時候自動幫你創建(項目是使用Swift語言創建的),點擊yes,Xocde就會在新建OC文件的同時幫我們新建一個 xxx-Bridging-Header.h 文件,xxx是你的項目名稱(Product Module),然后我們得編輯這個文件才能讓Swfit代碼調用OC代碼


在項目的xxx-Bridging-Header.h文件里,添加需要在Swift里調用的OC文件,然后就可以在Swfit代碼中調用了

OBJECTIVE-C

[objc]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
  1. #import "XYZCustomCell.h"  
  2. #import "XYZCustomView.h"  
  3. #import "XYZCustomViewController.h"  


SWIFT

[objc]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
  1. let myCell = XYZCustomCell()  
  2. myCell.subtitle = "A custom cell"  


在項目的 Build Settings 選項里,要確保Swift Compiler選項里有這個Bridging Header文件的設置,路徑必須指向文件本身,而不是目錄。


Importing Swift into Objective-C

當在OC里調用Swift中的代碼時,需要依賴一個xcode自動生成的頭文件,這個自動生成的頭文件定義了項目中所有的Swift文件,這個頭文件的命名為 “xxx-Swift.h” ,xxx為項目的名稱,此外就不需要再做任何事情了,你只需要在OC代碼里導入這么一個文件,就可以跟沒事一樣拿任意一個Swift中的代碼用了

[objc]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
  1. #import “ProductModuleName-Swift.h”  


以上歸納為一個表

 

 

  調用Swift代碼 調用OC代碼
Swift代碼 無需聲明 #import "ProductModuleName-Swift.h”
OC代碼 依賴bridging header文件 #import "Header.h”

 

 

 

我寫了一個小demo,里面有混合調用https://github.com/yang7/swiftAndOc

 

 

這里還有另外一個人寫的swift調用OC第三方框架的demo

http://pan.baidu.com/s/1c0myIbA

原文http://blog.csdn.net/jwzhangjie/article/details/40421629


免責聲明!

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



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