我们的 Swift 项目上线已经有一段时间了。结合目前 Swift 的使用情况,总结下其与 Objective-C 相比的优缺点。

总的来说,我认为使用 Swift 来作为编程语言的优点还是要远远大于缺点的,而且很多缺点苹果也在逐渐改善。

优点

简洁的语法
更强的类型安全
函数式编程的支持

Swift 语言本身提供了对函数式编程的支持。
Objc 本身是不支持的,但是可以通过引入 ReactiveCocoa 这个库来支持函数式编程。

编写 OS X 下的自动化脚本

缺点

App体积变大

使用 Swift 后, App 体积大概增加 5-8 M 左右,对体积大小敏感的慎用。

体积变大的原因是因为 Swift 还在变化,所以 Apple 没有在 iOS 系统里放入 Swift 的运行库,反而是每个 App 里都要包含其对应的 Swift 运行库。

Xcode 支持不够好

如果你是使用 Xcode经常卡住或者崩溃想必你是肯定碰到过了,这个是目前使用 Swift 最让人头疼的事情,即使是到现在XCode 9, 有时候也会遇到这种问题,所以要看你的承受力了……

第三方库的支持不够多

目前确实 Swift 编写的第三方库确实不多,但可以通过桥接的方式来使用 Objc 的三方库,基本上没有太大问题。现在已经改善很多了…

语言版本更新带来的编译问题

Swift 语言本身还在发展,所以每次版本更新后都会出现编译不过的情况(至少到目前为止还是),但是自从 4.0 版本发布后,改动没有 beta 时候那么大了,而且根据 Xcode 提示基本就可以解决语法变动导致的编译问题了。