一.缘由
Swift已经在一年前开始写东西了,那个时候一直用的是OC的思想写,for循环便是一个特别好的例子,这几天一直读书和看了一些博客,发现自己目前只会使用Swift,但是根本不了解里面的机制和变化;
每次有人问我OC和Swift的区别的时候,我回答的有两点:
1.Swift代码你要是不好好理顺写,那么非常的乱
2.我没太研究过
之前看了前同事写的LemonBleKit
(一个关于蓝牙的本地库,Swift写的),里面借鉴了很多的第三方风格,我可以看出来的有AFNetWorking
,SDWebImage
,还有AsyncDisplayKit
这几个优秀的第三方库,功底可见一斑,最后他去了一线互联网公司;
二.买了一本书
买了一本书,关于Swift进阶的。
讲的是Swift为什么这样做
,而不是Swift使用文档
我没看之前,一直想,我会OC,会写Swift,还要他干嘛?
看了50页之后,我想:我为什么会说自己是一个iOS中级工程师?
1.我会底层的东西
2.我会码UI
3.我会搭建框架
4.我知道OC中的很多为什么这样做
但是我能说自己是一名Swift高级工程师
吗?显然不能,最多是个初级
因为我连map
,filter
,reduce
都用不明白,只会用OC的思想去写Swift
突然意识到,我只是简单的会使用,但是Swift内部,我却一窍不通。总以为只是语法变了,其他的维持现状
人家面试我的时候,我只好会说,我能写,但是不太懂内部
Swift的内部已经变化很大,我却用老的眼光看待新的事物 --程序员的通病
三.我现在所知道的Swift和OC的区别有哪些
1.Swift中的数组和字典都可以直接放置基本数据类型,原因是他们都遵守了
hash
协议
2.大量使用了结构体,方便使用
3.map,filter,reduce
这些函数的大量使用
4.Swift是面向协议开发,OC是面向对象开发
5.for(i=0;i<5;i++)
这种遍历基本取消了,不建议使用了在Swift中
6.去前缀化:NSArray - Array
,NSDictionary - Dictionary
四.Swift编程风格有哪些
五.我该做什么
当发现Swift是一门新的语言,易学难精的时候,我们应该让自己重新的审视一下,改变旧的思想
1.把它当做一门新的语言来学习,当然,他确实是一门新的语言
2.多去研究一下他的底层,要知道他们为什么这么做
3.多看看别人的博客和优秀的第三方,知道和别人的差距,而不是闭门造车
4.多些多练,才是一个好的码UI的工程师
5.如果有机会可以仿写一个第三方
6.将自己学会的东西写出博客,让知识共享