前言
不想看废话的可以直接看下面一章Swift 5从入门到精通(一、基础语法)
使用OC开发很久了。Swift 3出来的时候学过一段时间,后来因为不兼容就放弃了。语言就是这样,不用很快就忘了。Swift 5发布已经有一段时间了,ABI也稳定下来了,所以Swift以后也不会有太大变动了,是时候真正开搞Swift了。
从学OC开始,到现在的Swift,我都是看的明杰老师的视频和他的其他视频,所以我这里的学习路线都是跟着明杰老师的课程来的,如果大家感兴趣或者想了解的更详细,强烈建议大家去腾讯课堂看看明杰老师课程,很详细,且很易懂。而且还会教你怎么结合汇编去看底层哦。我这里算是一个搬砖工吧,加上自己的一丢丢总结。
为什么现在适合学Swift了
其实在Swift 3 发布的时候,那时候就大肆宣扬说Swift稳定了,可以向后兼容了。然后掀起了一波学Swift的潮流,后来Swift 4出来,改动还是很大。现在ABI终于稳定了,Swift也可以学了。Swift完全开源https://github.com/apple/swift,主要采用C++编写
什么是ABI
相对于ABI让人不太理解,API倒是我们常听过的。
- API(Application Programming Interface,应用程序编程接口)
- 从技术角度来说,就是源代码和库之间的接口。
- ABI(Application Binary Interface 应用程序二进制接口)
- 应用程序与操作系统之间的底层接口
- 涉及的内容有:目标文件格式,数据类型的大小\布局\对齐,函数调用约定等
Swift相较Objective-C的优缺点
优点:
- 简介的语法,文件结构简易化
- 报错精准,语言安全
- 速度更快,运算性能更高
- 函数式编程的支持(虽然OC也能通过block代码块实现链式编程,但是比较麻烦)
- SwiftUI可以达到即写即显示的效果,而且语法精简,有点像Vue.js的那种感觉
缺点:
- 三方库支持不够多,相较于OC,肯定是不够多的。开发过程中,如果想要实现的功能Swift没有对应的第三方,那就不得不导入OC版本的第三方,这个时候便成了混合开发,混合开发的兼容性其实并不是很友好。而且混合开发的时候,项目变大,运行速度也变慢
- App体积变大
- 上线方式改变
总结
仁者见仁智者见智,OC目前来说,还是占比很大的,但是Swift是苹果目前主推的一门语言,我觉得还是有学习的必要的,而且前段时间我看到新闻说,苹果打算用swift进军人工智能。我自己也有一个体会,有时候我去https://stackoverflow.com/上去查一些问题,外国很多优秀的程序员都是用swift作为回答语言的,还有谷歌地图的API,示例都是swift,为了自己能看懂,还是学一下的好。