最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Swift3遷移至Swift4可能遇到的問題小結(jié)

 更新時間:2018年06月07日 11:30:47   作者:一蓑煙羽  
每當看到新的編程語言我總是會有相當大的興趣,所以下面這篇文章主要給大家介紹了關(guān)于Swift3遷移至Swift4可能遇到的問題,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

WWDC 2017 帶來了很多驚喜。Swift 4 也伴隨著 Xcode 9 測試版來到了我們的面前,很多強大的新特性非常值得我們期待在正式項目中去使用它。本文將給大家詳細介紹關(guān)于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或者Defalut。

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中對其進行了修改,雖然個人感覺還是有點奇怪~,但是起碼好用多了?。?/p>

var ctime = "2017-09-28 12:11:32.43234"
let endIndex = ctime.index(ctime.startIndex, offsetBy: 19)
ctime = String(ctime[ctime.startIndex ..< endIndex])

但是注意SubString使用的是原來string的內(nèi)存。官方建議是短時間使用,如果想要長時間保持,需要轉(zhuǎn)為String。

為了使用起來更方便,我們可以寫一個Extension來擴展Sting:

extension String {
 subscript (start: Int, end: Int) -> String? {
  if start > count || start < 0 || start > end {
   return nil
  }
  let begin = self.index(self.startIndex, offsetBy: start)
  var terminal: Index
  if end >= count {
   terminal = self.index(self.startIndex, offsetBy: count)
  } else {
   terminal = self.index(self.startIndex, offsetBy: end)
  }
  let str = self[begin ..< terminal]
  return String(str)
 }
}

3.某些第三方庫未適配Swift4處理辦法

  • 從Profile里移除該庫
  • pod update 或 pod install
  • 檢查Target->Build Settings->Linking->Other Linker Flags中,是否移除了相應(yīng)的framework

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Swift中 !和 ?的區(qū)別及使用

    Swift中 !和 ?的區(qū)別及使用

    這篇文章主要介紹了Swift中 !和 ?的區(qū)別及使用的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Swift語言中的函數(shù)學(xué)習(xí)教程

    Swift語言中的函數(shù)學(xué)習(xí)教程

    這篇文章主要介紹了Swift語言中的函數(shù)學(xué)習(xí)教程,著重講了Swift函數(shù)的參數(shù)傳遞用法,需要的朋友可以參考下
    2015-11-11
  • Swift算法之二叉樹實現(xiàn)的方法示例

    Swift算法之二叉樹實現(xiàn)的方法示例

    二叉樹是計算機科學(xué)中最基本也是最重要的樹型結(jié)構(gòu),最常見的二叉樹生成算法通常是使用遞歸或者其他描述類語言的方法來實現(xiàn)。本文主要介紹了Swift算法之二叉樹實現(xiàn)的方法,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • 利用Swift如何判斷iPhone X機型詳解

    利用Swift如何判斷iPhone X機型詳解

    近日,iPhone X的發(fā)布在人們?nèi)罕娨鹆撕艽蟮霓Z動,下面這篇文章主要給大家介紹了關(guān)于利用Swift如何判斷iPhone X機型的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • swift表格控件使用方法詳解(UITableview)

    swift表格控件使用方法詳解(UITableview)

    這篇文章主要為大家詳細介紹了swift表格控件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Swift繼承Inheritance淺析介紹

    Swift繼承Inheritance淺析介紹

    繼承我們可以理解為一個類獲取了另外一個類的方法和屬性。當一個類繼承其它類時,繼承類叫子類,被繼承類叫超類(或父類),在Swift中,類可以調(diào)用和訪問超類的方法,屬性和下標腳本,并且可以重寫它們。我們也可以為類中繼承來的屬性添加屬性觀察器
    2022-08-08
  • Swift中defer關(guān)鍵字推遲執(zhí)行示例詳解

    Swift中defer關(guān)鍵字推遲執(zhí)行示例詳解

    這篇文章主要給大家介紹了關(guān)于Swift中defer關(guān)鍵字推遲執(zhí)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • RxSwift學(xué)習(xí)教程之類型對象Subject詳解

    RxSwift學(xué)習(xí)教程之類型對象Subject詳解

    這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)教程之類型對象Subject的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。
    2017-09-09
  • Swift如何優(yōu)雅的進行解包

    Swift如何優(yōu)雅的進行解包

    這篇文章主要介紹了Swift優(yōu)雅的進行解包,對swift感興趣的同學(xué),可以參考下
    2021-04-04
  • 淺談Swift編程中switch與fallthrough語句的使用

    淺談Swift編程中switch與fallthrough語句的使用

    這篇文章主要介紹了Swift編程中switch與fallthrough語句的使用,用于基本的流程控制,需要的朋友可以參考下
    2015-11-11

最新評論

拉萨市| 安阳市| 高台县| 历史| 宽城| 武冈市| 石嘴山市| 安乡县| 吉隆县| 思南县| 宜宾市| 邓州市| 海盐县| 荣昌县| 松潘县| 鲁山县| 柳林县| 广河县| 达日县| 南阳市| 互助| 云林县| 灵山县| 百色市| 衡水市| 景洪市| 阳江市| 黄冈市| 神池县| 南漳县| 杂多县| 满洲里市| 邻水| 布尔津县| 兴化市| 黔江区| 淮南市| 保定市| 陆良县| 读书| 长治县|