作者:Thomas Hanning,原文鏈接,原文日期:2015-10-19
譯者:小鐵匠Linus;校對:numbbbbb;定稿:小鍋
Swift 雖然是一門比較新的技術(shù)語言,卻已經(jīng)有了很多關(guān)于 Swift 的誤區(qū)。
誤區(qū) 1 :“Swift 是弱類型的語言”
很多人認(rèn)為 Swift 是一種弱類型的語言。他們這么說的原因主要是可以隱式聲明一個值,而不管類型是什么:
var i = 5
這代碼看上去好像i
沒有類型,其實并不是這樣的。因為 5 是一個整型,所以編譯器就會讓i
成為整型變量。之后,整型變量i
不會再被改變,也就是說i
永遠(yuǎn)是整型變量。
當(dāng)然,我們也可以明確的指定變量的類型:
var i: Int = 5
雖然這種方式不是必要的,但它可以提高代碼的可讀性。
誤區(qū) 2 :“Swift 和 Objective-C 協(xié)作性差”
很多人不想開始嘗試使用 Swift,因為他們認(rèn)為 Swift 不能兼容現(xiàn)存的 Objective-C 代碼和類庫。其實并不是這樣的。在同一個工程中,同時使用 Swift 和 Objective-C 也是可行的。并且,在 Swift 代碼中也可以使用 Objective-C 的第三方庫。
可以在所謂的橋接文件中聲明 Objective-C 的頭文件,然后,所有頭文件的內(nèi)容都會被翻譯成 Swfit 的語法,這樣在調(diào)用 Objective-C 的 API 的時候就不會感覺到什么區(qū)別了。甚至 Objective-C 錯誤處理也被轉(zhuǎn)換成 Swift 的do-try-catch
語法了。
蘋果的框架仍然是用 Objective-C 寫的,如果Swift 和 Objective-C 協(xié)作性差的話事情就會變得很糟。
誤區(qū) 3 :“必須在新的項目中使用 Swift”
我覺得在新項目中使用 Swift 是個很好的想法,而且每個 iOS 開發(fā)者都應(yīng)該學(xué) Swift。
但是,你沒必要一定要在新項目中開始使用 Swift。現(xiàn)在蘋果官方還在支持 Objective-C,至少近幾年不會改變。但是,我認(rèn)為蘋果未來對 Objective-C 的支持會越來越少。
可以去我發(fā)布的另一篇文章 Should You Use Objective-C or Swift? 里看看關(guān)于本誤區(qū)的其他詳情。
誤區(qū) 4 :“只學(xué) Swift 就夠用了”
Swift 是門很棒的編程語言,它也可以用在生產(chǎn)環(huán)境,但是僅僅學(xué) Swift 是不夠的。原因大致如下:Swift 和 Objective-C 有很好的協(xié)作性,而且項目中也經(jīng)常會有 Objective-C 的代碼,同時,許多的示例代碼和教程是用 Objective-C 寫的。
因此,為了成為一個優(yōu)秀的 iOS 開發(fā)者,最好能同時學(xué)會 Swift 和 Objective-C。
誤區(qū) 5 :“Swift 還不能用在生產(chǎn)環(huán)境”
很多人認(rèn)為 Swift 還不能用在生產(chǎn)環(huán)境。其中一個原因就是,引進(jìn) Swift 到工程中時會有一些問題出現(xiàn),尤其是 Xcode 會有一些 bug。如果知道一些變通方法的話,還是可以在生產(chǎn)環(huán)境使用 Swift 的。
Swift 1.2 和 Swift 2.0 的引進(jìn)都有對語言的語法進(jìn)行修改。因此,把現(xiàn)存的 Swift 代碼遷移到新的語法上是必要的。當(dāng)然,這也沒什么可指責(zé)的,畢竟每個 iOS 版本都有代碼在變更。而且,這也是 Swift 在嘗試改善的重要標(biāo)志,特別是在 Swift 發(fā)布不久的現(xiàn)階段。
接下來做什么
如果你想學(xué)習(xí)更多有關(guān) Swift 的知識,學(xué)習(xí)蘋果的Swift文檔是一個非常好的開始。如果想了解其它的資源,可以關(guān)注一下我的博客 “How To Stay Up-To-Date On iOS Development”。