OC主工程中的使用Swift編寫的SDK,SDK編寫時的注意事項

最近公司準(zhǔn)備將自己的產(chǎn)品SDK
正好研究到如何這種情況,OC主工程,引用Swift編寫SDK時候的需要注意哪些,先上代碼:

類的編寫

public class TestUtils: NSObject {
    @objc
    public class func printLog() {
        print("TestUtils 你好世界")
    }
}
  1. 注意不要使用struct,因為OC根本就不認(rèn)識
  2. 類必須繼承NSObject
  3. 類必須使用public修飾
  4. 類的方法使用@objc與public修飾.
  5. 我這使用寫的是一個類方法,使用的是class修飾,使用static也是可以的.

枚舉的編寫

@objc
public enum TestType: Int {
    case a
    case b
    case c
    case d
}

由于枚舉的本質(zhì)是一種struct,但是注意這個枚舉后面raw使用Int,而Int在OC實際是NSInteger,然后這個枚舉注意使用@objc與public修飾,那么在OC也可以使用了.
用于OC的枚舉是羸弱的,所以就不要在Swift的枚舉中拓展其強(qiáng)大的功能,因為就算你拓展了,橋接到OC中也可能不會有這些功能,甚至橋接不過來.

另外,在OC主工程中引入Swift編寫的SDK后,調(diào)用方法的時候,應(yīng)該會報錯,報錯大概是這樣的:
Could not find or use auto-linked library 'swiftFoundation'還有類似的大堆,
在OC主工程中創(chuàng)建一個空的.swift文件,工程會提示創(chuàng)建橋接文件,這樣就不會報錯了.

文章參考
Swift4.0 SDK Framework創(chuàng)建

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容