OC主工程中的使用Swift编写的SDK,SDK编写时的注意事项

最近公司准备将自己的产品SDK
正好研究到如何这种情况,OC主工程,引用Swift编写SDK时候的需要注意哪些,先上代码:

类的编写

public class TestUtils: NSObject {
    @objc
    public class func printLog() {
        print("TestUtils 你好世界")
    }
}
  1. 注意不要使用struct,因为OC根本就不认识
  2. 类必须继承NSObject
  3. 类必须使用public修饰
  4. 类的方法使用@objc与public修饰.
  5. 我这使用写的是一个类方法,使用的是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文件,工程会提示创建桥接文件,这样就不会报错了.

文章参考
Swift4.0 SDK Framework创建

你可能感兴趣的:(OC主工程中的使用Swift编写的SDK,SDK编写时的注意事项)