Swift 已推出數(shù)年魏保,與Objective-C相比Swift的語言機(jī)制及使用簡易程度上更接地氣,也大大降低了iOS入門門檻摸屠。iOS10推出后谓罗,Xcode8也推出了更新,Xcode8下iOS版本最低適配已經(jīng)變?yōu)閕OS8.0季二,而且Swift版本也趨于穩(wěn)定檩咱,從某種意義上來說,Swift的時代正式開始胯舷,替代Objective-C也只是時間問題刻蚯。但是有些時候不得不使用Swift與Objective-C混編。
今天我們來看看兩者混編的時候需要注意的問題
混編無非兩種情況
- 在Objective-C工程中使用Swift文件
- 在Swift工程中使用Objective-C文件(這種情況居多)
混編中的兩個重要文件
1.橋接文件
橋接文件ProjectName-Bridging-Header.h
需纳,在首次創(chuàng)建其他文件的時候芦倒,會自動生成。如果不小心刪除后不翩,也可以手動添加兵扬,不過名字必須是ProjectName-Bridging-Header.h
頭文件(名稱組成:工程名-Bridging-Header.h
),如果名字記不清也可以自己新建Header file后口蝠,在Targets-->Build Settings-->Swift Compiler - General-->Objective-C Bridging Header
配置文件路徑器钟,這個文件主要是Swift使用OC類時使用。
2.Objective-C Generated Interface Header Name文件
這個文件是混編時妙蔗,系統(tǒng)生成的Swift文件對應(yīng)的Objective-C的頭文件傲霸,具體可以在Targets-->Build Settings-->Swift Compiler - General-->Objective-C Generated Interface Header Name進(jìn)行配置,默認(rèn)文件名是工程名-Swift.h眉反,一般不做改動昙啄。
1.在Objective-C工程中使用Swift文件
在OC中調(diào)用的時候也OC 寫法一樣,加上 #import即可 會自動添加工程名.swift
2.在Swift中使用OC文件
在橋接文件中引入需要的頭文件寸五,具體的使用梳凛,按照對用的Swift語法結(jié)構(gòu)來寫
3.SubClass
對于自定義的類,Objective-C不能繼承來自Swift的類梳杏,但是Swift可以繼承來自O(shè)C的類
4.OC中的宏定義
在Swift中只能使用簡單的一些宏定義
5.s使用OC中的block
當(dāng)然還有很多我這里沒有總結(jié)出來韧拒,希望大家在遇到需要使用的時候有哪些本文章沒有涉及的也可以告訴我淹接,大家一起學(xué)習(xí),一起進(jìn)步叛溢。