作者:Thomas Hanning,原文鏈接掸掏,原文日期:2015-11-23
譯者:王亞珂茁影;校對:千葉知風(fēng);定稿:千葉知風(fēng)
你應(yīng)該把 Objective-C
的代碼轉(zhuǎn)為 Swift
嗎丧凤?
未來是 swift
的募闲,但是這就意味著你需要把 Objective-C
的代碼都轉(zhuǎn)為 Swift
嗎?
選擇一:不轉(zhuǎn)代碼堅(jiān)持使用 Objective-C
乍一看這似乎是最簡單的方法了愿待。既然你已經(jīng)有了一個(gè) Objective-C
編寫的項(xiàng)目浩螺,繼續(xù)用OC寫下去肯定不是問題。不過仍侥。這會產(chǎn)生一些問題:
未來可能不會有很多優(yōu)秀的 Objective-C
開發(fā)者要出,因?yàn)闀性S多 iOS
開發(fā)者將注意力放在了 Swift
上面。如果你的項(xiàng)目依賴于其他的開發(fā)者农渊,未來你想要繼續(xù)維持純粹的 Objective-C
的項(xiàng)目恐怕不是一件容易的事兒患蹂。
但是即使你自己可以維護(hù)一個(gè)項(xiàng)目,這種方法也有害處。如果你沒有 Swift
方面的實(shí)踐况脆,你可能會錯(cuò)失許多蘋果通過 iOS SDK
引入的最新的開發(fā)技術(shù)饭宾。如果你想跟得上時(shí)代的步伐,你不得不學(xué)習(xí) Swift
格了。
選擇二:將 Objective-C
的代碼轉(zhuǎn)為 Swift
這是最激進(jìn)的一種方法看铆。但是想要將一個(gè)完整的項(xiàng)目從 Objective-C
轉(zhuǎn)為 Swift
意味著要寫一個(gè)新的項(xiàng)目了。雖然 Objective-C
與 Swift
有很好的互操作性盛末,但是他們的編程規(guī)范是完全不同的弹惦。所以如果你想要將 Objective-C
轉(zhuǎn)為 Swift
,使用錯(cuò)誤的編程范式是很危險(xiǎn)的悄但。
你還需要投入大量的時(shí)間和金錢棠隐。所以如果你不打算重寫你的項(xiàng)目,這個(gè)方法就有點(diǎn)太夸張了檐嚣。
選擇三:將新的代碼用 Swift
來寫
這是一種不錯(cuò)的折中辦法助泽。由于 Objective-C
與 Swift
之間的互用性很好,你可以用 Swift
來創(chuàng)建你新的類并讓它們與你已有的 Objective-C
的代碼交互嚎京。
使用這種方法你可以將你的項(xiàng)目一步步轉(zhuǎn)為 Swift
而不需要投入過多的時(shí)間和金錢嗡贺。更多的是這對于學(xué)習(xí)的過程也是很好的。與其重寫一個(gè)完整的項(xiàng)目鞍帝,不如將注意力集中在應(yīng)用的某些部分诫睬。
并且這個(gè)方法的風(fēng)險(xiǎn)也小得多。如果采取這種方法你可能會發(fā)現(xiàn)自己一點(diǎn)兒都不喜歡 Swift
(盡管不太可能會發(fā)生這種情況)帕涌,你完全可以再回到 Objective-C
并且不會損失過多的時(shí)間和金錢摄凡。
結(jié)論
雖然有些情況下值得你將 Objective-C
的代碼轉(zhuǎn)為 Swift
,但最好的折中的辦法就是將新代碼用 Swift
來寫并與你舊的 Objective-C
的代碼進(jìn)行交互蚓曼。
參考:Should You Use Objective-C or Swift?
本文由 SwiftGG 翻譯組翻譯亲澡,已經(jīng)獲得作者翻譯授權(quán),最新文章請?jiān)L問 http://swift.gg辟躏。