項目swift2.3轉(zhuǎn)swift3

一,前言

離蘋果正式發(fā)布swift3也有大半年的時間了,一般主流的swift三方庫也都基本轉(zhuǎn)到swift3了,所以這次正好利用版本間隙的時間,把公司項目由swift2.3轉(zhuǎn)到3上.(一兩周前已成功轉(zhuǎn)完,APP也系統(tǒng)的測試了一遍,現(xiàn)在已成功上線)我這個項目代碼量也不是太多,從我正式開始轉(zhuǎn),大概花了七八天時間,最后測試系統(tǒng)的測了三天.總共大概花了10天的時間!!!

二,準(zhǔn)備工作

1.在轉(zhuǎn)swift3之前,建議先了解下swift3有哪些新的特性,以及蘋果為什么打算這么修改.https://realm.io/cn/news/appbuilders-daniel-steinberg-whats-new-swift-3/ , 建議多看幾篇類似的文章了解下.
2.強(qiáng)烈建議在swift2.3的環(huán)境下,就提前把一些老的代碼風(fēng)格替換掉,如CGRectMake 轉(zhuǎn)為 CGRect等等,因為這些修改如果你想等切換到swift3再去修改的話,你會發(fā)現(xiàn)很蛋疼,因為到時候編譯是報999+的錯誤

swift3切換后的錯誤數(shù)量.png

可以完全在切換到3之前把這些錯誤都解決了.下面我給出一個可以提前轉(zhuǎn)換掉的列表(以前OC遺留的代碼分格)

  • CGRectMake ----> CGRect
  • CGPointMake ----> CGPoint
  • UIEdgeInsetsMake ----> UIEdgeInsets
  • CGSizeMake ----> CGSize
  • CGRectZero ----> CGRect.zero
  • 字典和數(shù)組NSArray,NSDictionary這種寫法改用swift的寫法

ps:有些人會認(rèn)為蘋果會自動轉(zhuǎn)化,沒這個必要,其實對于一些簡單的情況,蘋果也確實會自動轉(zhuǎn)化


蘋果自動轉(zhuǎn)換的.png

不過,我個人建議還是自己先提前轉(zhuǎn)下,工作量也不算多,特別是對于數(shù)組,字典這種,轉(zhuǎn)完就可以立馬看效果.畢竟這個時候代碼還是可以跑的??.

三,正式開始轉(zhuǎn)換

1.先處理三方庫的問題
三方庫有問題的也就是之前swift2.3的三方庫,對于oc的庫完全不受影響.我們只要找到三方庫作者轉(zhuǎn)化好的就行了,這部分代碼不需要我們自己轉(zhuǎn).下面是我當(dāng)時pod文件中做的處理.

podfile文件.png

對于還不支持swift3的三方庫,如果代碼量少的話,還可以將代碼拖到項目中自己修改,對于代碼量多的情況(一般三方庫代碼量都不少的),個人建議最好還是舍棄掉.我自己就把好幾個界面的代碼重寫了下.
三方庫的版本問題是否支出swift3,自行去github上查看.或者是去這查找https://cocoapods.org/

2.切換swift環(huán)境到swift3


切換到swift3.png

對于,轉(zhuǎn)化的目標(biāo)文件,我們只需選取我們自己寫的代碼就行了,三方的庫都不要勾選


選取轉(zhuǎn)化目標(biāo).png

點(diǎn)擊next,我們就進(jìn)入了蘋果自己轉(zhuǎn)換的預(yù)覽界面了
屏幕快照 2016-12-29 上午11.00.12.png
屏幕快照 2016-12-29 上午11.00.36.png
屏幕快照 2016-12-29 上午11.02.45.png
屏幕快照 2016-12-29 上午11.03.22.png

這里,我們就只要點(diǎn)擊瀏覽瀏覽,默認(rèn)選取就可以了,這里你可以多停留些時間,把這些語法看看,正好自己可以對swift3的新特性再增強(qiáng)下了解.

3.可能遇到的問題!!
如果你發(fā)現(xiàn)所用成功使用swift3的三方框架都是報錯的


使用swift3代碼的三方庫還是報錯.png

那是因為你三方的swift3的代碼還是用的swift2.3的編譯方式,切換下就行了.

單個處理方式,這個方法不太好.png

這個方法不太好(要逐個解決),簡單點(diǎn)的方法,去項目中把pod文件夾里面的數(shù)據(jù)都刪了,重新pod install下.

簡單的處理方式.png

4.最后一步處理(花費(fèi)時間最多的)
接下來就是手動處理,錯誤的代碼了,這個地方一定要耐心處理,不然往后項目中有些小錯誤你要定位很久的.

單次解決一個類型的錯誤.png

這里,解決錯誤還是建議,一個一個類型的錯誤統(tǒng)一處理,不然最后改的眼花繚亂,感覺狀態(tài)不好,就立馬放下鍵盤,待會再處理.心急吃不了熱豆腐??.

最后,就自求多福了...........希望能對你有所幫助.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市不狮,隨后出現(xiàn)的幾起案子操刀,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡夹纫,警方通過查閱死者的電腦和手機(jī)旭咽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門聊训,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倔喂,“玉大人礁竞,你說我怎么就攤上這事糖荒。” “怎么了模捂?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵捶朵,是天一觀的道長蜘矢。 經(jīng)常有香客問我,道長综看,這世上最難降的妖魔是什么品腹? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮红碑,結(jié)果婚禮上舞吭,老公的妹妹穿的比我還像新娘。我一直安慰自己析珊,他們只是感情好羡鸥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著忠寻,像睡著了一般惧浴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奕剃,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天衷旅,我揣著相機(jī)與錄音,去河邊找鬼祭饭。 笑死芜茵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的倡蝙。 我是一名探鬼主播九串,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寺鸥!你這毒婦竟也來了猪钮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤胆建,失蹤者是張志新(化名)和其女友劉穎烤低,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體笆载,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扑馁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凉驻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腻要。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖涝登,靈堂內(nèi)的尸體忽然破棺而出雄家,到底是詐尸還是另有隱情,我是刑警寧澤胀滚,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布趟济,位于F島的核電站乱投,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏顷编。R本人自食惡果不足惜戚炫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望媳纬。 院中可真熱鬧嘹悼,春花似錦、人聲如沸层宫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萌腿。三九已至,卻和暖如春抖苦,著一層夾襖步出監(jiān)牢的瞬間毁菱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工锌历, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贮庞,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓究西,卻偏偏與公主長得像窗慎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子卤材,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容