您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機編程>

iOS系統(tǒng)Xcode9.0-beta與Swift4.0怎樣進行適配

大?。?/span>0.3 MB 人氣: 2017-09-25 需要積分:1

  適配Xcode9.0-beta與Swift4.02017-06-13 11:30  適配Xcode9.0-beta與Swift4.0

  原文地址:http://blog.jiar.vip/2017/06/09/%E9%80%82%E9%85%8DXcode9-0-beta%E4%B8%8ESwift4.0/

  簡書地址:http://www.jianshu.com/p/1f702d59e54b

  您可以通過保留原文地址或者簡書地址的方式進行轉(zhuǎn)載。

  這幾天蘋果在開WWDC2017大會,期間放出了Xcode9.0-beta以及Swift4。為了響應(yīng)蘋果爸爸的號召,我果斷下載了Xcode9.0-beta,并在項目中拉出了新的分支,準(zhǔn)備搞事。

  如何適配

  Xcode9.0-beta內(nèi)置的Swift版本不止一個,它同時支持Swift4.0和Swift3.2。而我們正在用的Xcode8,最高只支持Swift3.1?;谶@個事實,我先拉一個Xcode9.0-beta-Swift3.2的分支,待適配好Swift3.2后,再起分支Xcode9.0-beta-Swift4.0去支持Swift4.0。

  適配Swift3.2

  首先,對于Swift3.2,我的理解是:既然版本命名為3.2,那么應(yīng)該只是基于3.1版本上的微調(diào)(我去查Swift,查到更多的是關(guān)于Swift4.0方面的信息)。適配Swift3.2的過程中,我的項目代碼不需要任何改動,唯一出問題的是一個第三方庫:Eureka,報錯的原因是Collection協(xié)議的sub返回值從Array變成了ArraySlice,關(guān)于這個問題,已有人在Eureka的issues中提出(#1082)。隨后有人commit修復(fù)了這個問題,并開出新分支來適配Swift3.2。

  iOS系統(tǒng)Xcode9.0-beta與Swift4.0怎樣進行適配

  最后,我在Podfile中修改pod ‘Eureka’為pod ‘Eureka’, :git =》 ‘https://github.com/xmartlabs/Eureka.git’, :branch =》 ‘swift3.2’,完成了適配Swift3.2。

  由此可見,適配Swift3.2幾乎是沒有什么壓力的,我也就看到Collection協(xié)議的sub返回值變動這個情況。

  適配Swift4.0

  并不是所有庫都能做到及時支持Swift4.0,更何況是在現(xiàn)在連Xcode9也還是beta的狀態(tài),所以我們僅能做到將自己的業(yè)務(wù)代碼(主工程代碼)部分升級到Swift4.0,然后同時保留各種pod庫在Swift3.2版本。沒辦法,誰叫Swift4.0也還無法做到ABI兼容呢(但愿能在Swift5之前實現(xiàn)吧)。至于我說的同時使用兩個版本的Swift,這是沒問題的,Xcode9支持在項目中同時使用Swift3.2和Swift4.0。

  具體要怎么做呢?(修改Swift版本)

  第一步,如下圖指定主工程的Swift版本為4.0

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?