先说点没用的
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱的 Cocoa 和 Cocoa Touch 框架,他的降临将重新定义软件开发。
上面那段话是从百度百科来的,Swift从正式发布到现在,已经三年多了。在这段时间,Apple对Swift进行了非常快速的迭代,直到最新发布的Swift 4,Swift已经基本稳定了,也让还在观望的我开始了Swift的学习。
断断续续看了一个礼拜不到的Swift的语法,然后有了这篇博客,主要说说我了解Swift的现况和Swift和OC的一些区别。不足之处,还望指出。
第一印象
Swift很简洁
Swift的简洁明了给了我很深的印象,虽然让读惯了OC代码的我有些不习惯,但是真的很美。语法上和JS等脚本语言有些相似,一些命名和OC有点像,同时类型安全,除了编译的速度稍慢、没有RN等黑魔法,已经很健全了。
对比老情人
Swift和OC的联系
Swift和OC共用一套运行时环境,两者之间可以互相引用混合编程。
OC之前的许多类库,在Swift中依然可以调用。OC中的大多数概念,比如引用计数、ARC、属性、协议、接口、初始化、扩展类、命名参数、匿名函数等,在Swift中继续有效(可能最多换个术语)。Swift大多数概念与OC一样。当然Swift也多出了一些新兴概念,这些在OC中是没有的,比如泛型、元组等。
Swift对比Objective-C的优势
- Swift容易阅读,语法和文件结构简易化。
- Swift更易于维护,文件分离后结构更清晰。
- Swift更加安全,它是类型安全的语言。
- Swift代码更少,简洁的语法,可以省去大量冗余代码
- Swift速度更快,运算性能更高。
下图是Swift和OC的性能对比,显而易见,Swift的性能远超OC

现阶段Swift 到底能不能完全取代 Objective-C?
我个人认为还是不行。毕竟因为 Apple 内部一直在用 Objective-C 来做一些 Framework 的开发,底层也不可能用 Swift 实现,所以现在更多的替代是体现在外部开发。其次许多的第三方支持还是不够。
挑点毛病?
Swift目前存在的缺点
- 使用人数偏低。虽然在国外Swift已经非常普及了,但是在国内还是OC的天下
- 社区的开源项目偏少,毕竟OC独大好多年,很多优秀的类库都不支持Swift,不过这种状况正在改变,现在有好多优秀的Swift的开源类库了
- 公司使用的比例不高,出于成本等考虑,许多公司还是以OC为主,只有少数公司使用混编或者纯Swift开发
- 纯Swift的运行时和OC有本质区别,一些OC中运行时的强大功能,在纯Swift中变无效了。
- 对于不支持Swift的一些第三方类库,如果非得使用,只能混合编程,利用桥接文件实现
上车不?
Swift 4发布之后,我个人感觉已经可以上车了。之前版本不稳定,升级Swift 3大动刀,苦了好多人。而Swift 4虽然也有改动,不过尚在接受范围内。有空闲时间的话,可以看看语法,写写Demo。
希望Swift发展的越来越好,功能和社区越来越完善。
网友评论