為了手頭上的1個(gè)項(xiàng)目,我需要使用 CommonCrypto 庫(kù)中的 HMAC 函數(shù).雖然蘋果在 swift 中已提供了許多系統(tǒng)庫(kù),但是 CommonCrypto 不在其中.慶幸的是,要使用這個(gè)庫(kù)其實(shí)不怎樣費(fèi)事,只需要做1點(diǎn)額外的工作.
開始訪問庫(kù)
在使用庫(kù)之前,我們需要通知 Swift編譯器.要完成這個(gè)進(jìn)程,我們有兩種方式.它們都能在示例工程中正常運(yùn)行,但是你應(yīng)當(dāng)根據(jù)你代碼的用處來選擇具體的方式.好消息是,你隨意使用那種方式,然后如果在后面需要另外一種的話,要切換那是相當(dāng)簡(jiǎn)單.
最簡(jiǎn)單的訪問1個(gè)庫(kù)的方式是使用 OC 橋接頭文件.由于 OC 是 C 的超集.所以這個(gè)橋接頭文件也能夠讓你訪問純 C 庫(kù).如果你的 swift 工程里面沒有橋接頭文件,那末自己創(chuàng)建1個(gè),這個(gè)步驟簡(jiǎn)單的要死.
右鍵你的工程,然后添加1個(gè) OC 文件,隨意起個(gè)名字(1會(huì)我們就刪掉這個(gè)文件).
1旦你建立好這個(gè)文件, Xcode 將會(huì)詢問你是不是需要配置1個(gè) OC 橋接頭文件,固然選擇”是”.然后刪掉你剛剛建立的OC 文件(不是頭文件…).這個(gè)頭文件將會(huì)被命名成 項(xiàng)目名- Birdging-Header.h
.打開這個(gè)文件,并且導(dǎo)入你需要的 C 庫(kù).
需要注意的是,許多庫(kù)需要額外的鏈接器設(shè)置,例如,在其它鏈接器標(biāo)識(shí)中的-lfoo
會(huì)告知鏈接器去鏈接到 libfoo. 請(qǐng)?jiān)谀愕?Xcode 項(xiàng)目的 Buid settings 里面設(shè)置好.
雖然橋接頭文件的方式是如此的簡(jiǎn)單易行,但是它卻有個(gè)很關(guān)鍵的局限