最近公司準(zhǔn)備將自己的產(chǎn)品SDK
正好研究到如何這種情況,OC主工程,引用Swift編寫SDK時候的需要注意哪些,先上代碼:
類的編寫
public class TestUtils: NSObject {
@objc
public class func printLog() {
print("TestUtils 你好世界")
}
}
- 注意不要使用struct,因為OC根本就不認(rèn)識
- 類必須繼承NSObject
- 類必須使用public修飾
- 類的方法使用@objc與public修飾.
- 我這使用寫的是一個類方法,使用的是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)建橋接文件,這樣就不會報錯了.