繁体   English   中英

Swift框架或Objective-c库

[英]Swift framework or Objective-c library

我们的团队需要更新一个用obj-c编写的库,该库过去已经分发给其他iOS开发人员。 我们正在评估是否应在此更新中使用Swift框架。 我们所有人都希望使用swift,但由于潜在的开发人员可能在他们的项目中使用swift,obj-c或混合程序,因此希望了解如何采用swift。 在我们完成更新时,我们计划仅支持iOS8及更高版本。 非常感谢您的任何见解/建议。

我有一个用Objective-C编写的90K loc库,仍然基于MRC(但与ARC兼容)。 我花了一个星期的时间对方法名称和注释(例如__nullable)的头文件进行了一些小的调整,以使代码库达到可以在Swift中编写演示客户端程序的状态。 该演示程序看起来很自然。 集成是非常无缝的,ARC仅需解决一些细微的问题。 最重要的是,我不一定要转换现有框架并将其从Objective-C重写为Swift。 两种语言完美地融合在一起,我们正在做相当复杂的设计,这些设计使用了整个OO设计模式,并广泛使用了闭包(块)。 Swift闭包被视为Objective-C块,一切都可以完美地工作。 那就是几百个类和几千个方法。

事实证明,添加__nullable __nonnull批注对避免可选类型及其在整个过程中的显式取消引用(很多类型的末尾带有!)非常重要。 那是最大的变化。

不要改变正在起作用的东西。 您的框架对于Swift用户而言将是原生的。

至少,我建议审核现有库的可空性 ,因为这将为Objective-C框架提供更逻辑的Swift接口。

我不建议仅仅为了移植到Swift而移植到Swift,而仅当存在明显优势时才建议移植到Swift。 但是,编写良好的Objective-C框架通常可以在Swift应用程序中完美使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM