前言
前段时间用Object-C正在开发一个项目,开发了差不多百分之七八十了,客户通知要求改成Swift语言开发(因为他只会Swift),好吧,一个项目用Swift来写其实也无可厚非,但是这个项目中途来换,可想而知是多么痛苦的事,已经写了好多个OC类。
步骤
调研
之前一开始也在网上找了很多资料,有OC与Swift对应功能的语法解说,也有贴代码用工具直接转的,用过iSwift,但不是很好用,识别率不高,正确率不高。
这些都感觉比较费时(客户只给了一周的时间),然后就在想,有没有一个是直接可以转工程的工具呢?别说,强大的google还真搜出来了,这个软件可以直接转换工程。
实施
这个软件叫什么名呢,也不卖关子了,是一个在线转换的网站:
它是提供少量代码免费转换,大家可转换自己的部分代码看看正确性,还可以在线输出Swift代码结果,它可以单文件、文件夹或工程打包在线转换。
不过呢,好的软件都是收费的,具体资费我就不说了(避免托的嫌疑,有需要的上官网自己看吧),对于转换的成本来说这个价格很便宜了。
结果
注意点
- 给大家一个建议,这个购买后使用有流量限制,建议打包的时候把静态库、framwork、SDK、第三方库等相关的剔除后打包上传,转换成功后再放置到对应路径下。
- 原OC代码留存(原因见下面)。
问题
这个工程转换成功后,使用起来就没有一点问题了吗?
错错错,当初我记得一开始报错不怎么多几十个吧,关键改完后,不断的重编译就暴露更多的错,这样下来估计也改了有几百个错了。
是什么类型的错误
- 很多都是语法的错误,而Xcode有提示修正的方法,直接鼠标点点点就改好了,比较轻松。
- 有些是语法不识别的问题,这个就需要自己查资料对应OC代码寻找对应的Swift代码了,所以要留存原OC代码。
- 有些工程设置的地方报错,但是这个很少,就几处,百度google就能解决。
最后
然后,到了这一步,以为万事大吉了吗?哈哈,并没有,有些地方转换虽说没报错,但可能会转错意,需要整体流程跑下,最好找测试再过遍流程,切记。
PS:有些OC库实在没办法转的,就采取桥接的方式使用吧。
总结
总体来说,这次的转换是很成功的,原本估时为一周,但是实际2~3天就完成了转换,比较高效率,所以建议大家转换Swift可采取这种方式。
比较遗憾的是,当时时间比较赶,没来得及截图留存给大家,如果觉得文章上有什么疑问,或者实际实践过程中遇到什么问题,欢迎大家在下方留言告诉我,我会第一时间回复你。