Swift3遷移至Swift4可能遇到的問題小結

2022-09-20 21:22:14 字數 1276 閱讀 9153

前言

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 ...