一.緣由
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.將自己學會的東西寫出博客,讓知識共享