我在目标C中有一个旧的库,由几个人开发(一个站点,下一站点继续该项目...)。该库用于多种应用程序,其中大多数是在目标C中开发的。我想在此应用中添加新功能,但是代码实际上是不可维护的(无测试,无注释等)。
我的主要想法是在Swift中重建框架或库。我有业务需求,但对目标c不满意。
如果我想在“旧的”目标C应用程序中使用新的swift库,是否会遇到兼容性问题,或者如果不更改API,那会很棒吗?
对于拥有自己的应用程序并且现在必须使用新库的客户来说,这是透明的吗?
只要您保持相同的接口并将所有以前的公共方法/属性标记为@objc
,就不会对库的API进行任何重大更改,因此所有使用者都应该能够继续使用它而无需进行任何更改在他们的身边。
但是,必须将所有方法都标记为@objc
,这会限制您使用Swift的全部功能,因为Swift的某些功能在Obj-C中不可用,因此如果您希望类型/函数如果在Obj-C中可用,则不能使用此类功能(即,不能在函数签名中使用元组或向枚举添加方法)。