關(guān)于swift2.3到swift3升級(jí)記錄

簡介

xcode8.3之后就只能支持swift3.0以上了葱弟,在上個(gè)版本做完后褐啡,我就開始做代碼升級(jí),在此記錄一下過程奉狈。

關(guān)于安裝兩個(gè)xcode

由于怕出問題卤唉,我準(zhǔn)備開一個(gè)分支,并且另外安裝一個(gè)xcode8.3仁期,畢竟不是只有這一個(gè)項(xiàng)目桑驱。關(guān)于安裝兩個(gè)xcode有兩點(diǎn)要注意一下:
1.避免重名,安裝第二的時(shí)候改下xcode名字如Xcode8.3這樣跛蛋;
2.編譯選擇的xcode熬的,在命令行(Terminal )敲入sudo xcode-select -s /Applications/Xcode8.3.app這樣,最后一個(gè)就是選擇的xcode名字赊级。

流程

首先呢用Xcode8.3打開工程押框,然后xcode自動(dòng)檢測到會(huì)提示你convert,先讓xcode自動(dòng)修改理逊。
然后把工程用到的第三方庫更新橡伞,用cocoapod更新或者直接到github上下載,我這邊因?yàn)槭莖c和swift混用的晋被,只用到了ObjectMapperSnapKit兑徘。
最后就開始最主要的修改代碼了,有很多是xcode沒有修改正確的地方羡洛,我這邊就有300多紅點(diǎn)挂脑,當(dāng)時(shí)第一反應(yīng)是蒙蔽的:(哭

相關(guān)問題

1.關(guān)于AnyObject和Any,AnyObject只能表示class類型對(duì)象欲侮,相當(dāng)于oc中的id崭闲。但在swift中,例如string锈麸、Array等都變成了結(jié)構(gòu)體镀脂,到了swift3中就有更多的類變成結(jié)構(gòu)體了牺蹄,這時(shí)之前用AnyObject表示的現(xiàn)在都需要改成Any忘伞。

2.有一個(gè)CGFloat.max是用在動(dòng)態(tài)計(jì)算文本長度(NSString的boundingRectWithSize)的地方,現(xiàn)在改成了CGFloat.greatestFiniteMagnitude

3.在oc中有時(shí)候需要檢測對(duì)象類型氓奈,oc中的寫法[xxx class],在之前啊swift中也是直接用類名來表示翘魄,而在swift3中是xxx.classForCoder()

4.在一個(gè)延遲執(zhí)行中舀奶,添加了DispatchTime類型暑竟,一種創(chuàng)建方法.now()+.milliseconds(1000)這個(gè)1000的單位是毫秒(ms)。

5.創(chuàng)建通知時(shí)的通知名不能再直接用字符串育勺,而是要用NSNotification.Name()的方式創(chuàng)建但荤。

6.關(guān)于for循環(huán)的用法:
oc風(fēng)格的for var i = 0 ; i < count ; i++ {}
swift風(fēng)格的for i in 0 ..< count {}

7.關(guān)于圖片的64位編碼,我們的程序之前是用了一個(gè)GTMBase64的第三方庫做的涧至,在swift3中報(bào)錯(cuò)了腹躁,然后我看了下在Data中有一個(gè)base64EncodedString()方法,試了下也沒問題南蓬。

總結(jié)

修改完代碼以后纺非,我仔細(xì)想了一下,最主要的問題還是swift對(duì)類型要盡量嚴(yán)格定義赘方,在獲取云端json數(shù)據(jù)時(shí)會(huì)有不確定性烧颖,自己解析就會(huì)比較麻煩還會(huì)遇到許多問題,盡量還是使用SwiftyJSON這樣完善的第三方庫進(jìn)行處理窄陡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末炕淮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子跳夭,更是在濱河造成了極大的恐慌鳖悠,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件优妙,死亡現(xiàn)場離奇詭異乘综,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)套硼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門卡辰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人邪意,你說我怎么就攤上這事九妈。” “怎么了雾鬼?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵萌朱,是天一觀的道長。 經(jīng)常有香客問我策菜,道長晶疼,這世上最難降的妖魔是什么酒贬? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮翠霍,結(jié)果婚禮上锭吨,老公的妹妹穿的比我還像新娘。我一直安慰自己寒匙,他們只是感情好零如,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锄弱,像睡著了一般考蕾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上会宪,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天辕翰,我揣著相機(jī)與錄音,去河邊找鬼狈谊。 笑死喜命,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的河劝。 我是一名探鬼主播壁榕,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赎瞎!你這毒婦竟也來了牌里?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤务甥,失蹤者是張志新(化名)和其女友劉穎牡辽,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敞临,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡态辛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挺尿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奏黑。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖编矾,靈堂內(nèi)的尸體忽然破棺而出熟史,到底是詐尸還是另有隱情,我是刑警寧澤窄俏,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布蹂匹,位于F島的核電站,受9級(jí)特大地震影響凹蜈,放射性物質(zhì)發(fā)生泄漏限寞。R本人自食惡果不足惜忍啸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昆烁。 院中可真熱鬧吊骤,春花似錦缎岗、人聲如沸静尼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鼠渺。三九已至,卻和暖如春眷细,著一層夾襖步出監(jiān)牢的瞬間拦盹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國打工溪椎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留普舆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓校读,卻偏偏與公主長得像沼侣,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子歉秫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

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