前言
wwdc 2017 帶來了很多驚喜。swift 4 也伴隨著 xcode 9 測試版來到了我們的面前,很多強大的新特性非常值得我們期待在正式專案中去使用它。本文將給大家詳細介紹關於swift3遷移至swift4遇到的問題,下面話不多說了,來一起看程式設計客棧看詳細的介紹吧
問題如下:
1.the use of swift 3 @objc inference in swift 4 mode is deprecated.警告
選擇target->build settings,搜尋swift3,在swift3 @objc inference中,把on改為off或者de****t。
2.string的substring方法廢棄
在swift3中我們想要擷取字串的話,一般是用的是:
var ctime = "2017-09-28 12:11:32.43234"
ctime = ctime.substring(to: ctime.index(ctime.startindex, offsetby: 19))
不得不說這段語句剛開始寫的時候多麼的蛋疼。。。不僅難以理解,而且在xcode8裡面敲的時候,莫名的就會全部**高亮消失,然後提示report bug。
終於在swift4中對其進行了修改,雖然個人感覺還是有點奇怪~,但是起碼好用多了!!
var ctime = "2017-09-28 12:11:32.43234"
lwww.cppcns.comet endindex = ctime.index(ctime.startindex, offsetby: 19)
ctime = string(ctime[ctime.startindex ..< endindex])
但是注意substring使用的是原來string的記憶體。官方建議是短時間使用,如果想要長時間保持,需要轉為string。
為了使用起來更方便,我們可以寫乙個extension來擴充套件sting:
extension string
let begin = self.index(self.startindex, offsetby: start)
var terminal: index
if end >= count else
let str = self[begin ..< terminal]
return string(str)
}}3.某些第三方庫未適配swift4處理辦法
總結本文標題: swift3遷移至swift4可能遇到的問題小結
本文位址: /ruanjian/swift/229712.html
回顧Swift 3,展望Swift 4
在swift 3 late 2016版本臨近發布之際,蘋果公司開發者工具部門高階總監chris lattner發給 swift evolution 郵件列表一篇長文。文中對swift 3的開發過程進行了回顧,並給出了對swift 4的期望。在對swift 3的回顧中,lattner主要側重於說明開源...
回顧Swift 3,展望Swift 4
在swift 3 late 2016版本臨近發布之際,蘋果公司開發者工具部門高階總監chris lattner發給 swift evolution 郵件列表一篇長文。文中對swift 3的開發過程進行了回顧,並給出了對swift 4的期望。在對swift 3的回顧中,lattner主要側重於說明開源...
回顧Swift 3,展望Swift 4
在 swift 3late 2016版本臨近發布之際,蘋果公司開發者工具部門高階總監 chris lattner 發給 swift evolution 郵件列表一篇長文。文中對 swift 3 的開發過程進行了回顧,並給出了對 swift 4 的期望。在對 swift 3 的回顧中,lattner ...