OC主工程中的使用Swift编写的SDK,SDK编写时的注意事项
2020-06-08 本文已影响0人
seasonZhu
最近公司准备将自己的产品SDK
正好研究到如何这种情况,OC主工程,引用Swift编写SDK时候的需要注意哪些,先上代码:
类的编写
public class TestUtils: NSObject {
@objc
public class func printLog() {
print("TestUtils 你好世界")
}
}
- 注意不要使用struct,因为OC根本就不认识
- 类必须继承NSObject
- 类必须使用public修饰
- 类的方法使用@objc与public修饰.
- 我这使用写的是一个类方法,使用的是class修饰,使用static也是可以的.
枚举的编写
@objc
public enum TestType: Int {
case a
case b
case c
case d
}
由于枚举的本质是一种struct,但是注意这个枚举后面raw使用Int,而Int在OC实际是NSInteger,然后这个枚举注意使用@objc与public修饰,那么在OC也可以使用了.
用于OC的枚举是羸弱的,所以就不要在Swift的枚举中拓展其强大的功能,因为就算你拓展了,桥接到OC中也可能不会有这些功能,甚至桥接不过来.
另外,在OC主工程中引入Swift编写的SDK后,调用方法的时候,应该会报错,报错大概是这样的:
Could not find or use auto-linked library 'swiftFoundation'
还有类似的大堆,
在OC主工程中创建一个空的.swift文件,工程会提示创建桥接文件,这样就不会报错了.