欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Swift data范圍截取問題解決方案

 更新時間:2023年09月28日 09:31:39   作者:鸑鷟鳳凰  
這篇文章主要介紹了Swift data范圍截取問題解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、截取字符串的幾種方法

1. 截取前幾位

mobileID.prefix(32)

2. 截取后幾位

mobileID.suffix(3)

3. subData

data.subdata(in: 0..<4)

4. 下標截取

data[0..<4]

二、subData(in:) 報錯 EXC_BREAKPOINT

原因:Data值(或一般的集合)的索引不一定是從零開始的。

這里有一段代碼

let array:[UInt8] = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06]
let data = Data(bytes: array)
//問題:請問以下六個的結果是?
data.subdata(in: 3...4).forEach{ print("a \($0)") }
data.subdata(in: 3..<3).forEach{ print("b \($0)") }
data.subdata(in: 3..<4).forEach{ print("c \($0)") }
data[3...4].forEach{ print("A \($0)") }
data[3..<3].forEach{ print("B \($0)") }
data[3..<4].forEach{ print("C \($0)") }

結果:

data.subdata(in: 3...4).forEach{ print("a \($0)") }// 報錯 Cannot convert value of type 'ClosedRange<Int>' to expected argument type 'Range<Data.Index>' (aka 'Range<Int>')
data.subdata(in: 3..<3).forEach{ print("b \($0)") }// 空值
data.subdata(in: 3..<4).forEach{ print("c \($0)") }// c 4
data[3...4].forEach{ print("A \($0)") }// A 4 A 5
data[3..<3].forEach{ print("B \($0)") }// 空
data[3..<4].forEach{ print("C \($0)") }// C 4

data.subdata(in: 3…4) 報錯原因:

此方法要求的傳值為Range<Data.Index> (Data.Index其實就是Int)

而 3…4 實際上是ClosedRange

我們知道,Swift3.0以后,Range有四種:

而這四種Range并不能在互相之間直接轉換因此 data.subdata(in: 3…4) 就會報上述錯誤

為什么下標取值既能用CountableClosedRange,也能用CountableRange?

翻閱Swift源代碼就知道原因Swift對四種Range都定義了下標取值

到此這篇關于Swift data范圍截取問題的文章就介紹到這了,更多相關Swift data范圍截取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Swift調用Objective-C編寫的API實例

    Swift調用Objective-C編寫的API實例

    這篇文章主要介紹了Swift調用Objective-C編寫的API實例,介紹的比較全面和詳細,對Objective-C代碼的重復利用有極大好處,的朋友可以參考下
    2014-07-07
  • 使用swift實現(xiàn)計算器功能

    使用swift實現(xiàn)計算器功能

    這篇文章主要為大家詳細介紹了使用swift實現(xiàn)計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Swift?Error重構的基礎示例詳解

    Swift?Error重構的基礎示例詳解

    這篇文章主要為大家介紹了Swift?Error基礎錯誤處理的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • swift中AnyObject和Any的介紹與區(qū)別詳解

    swift中AnyObject和Any的介紹與區(qū)別詳解

    雖然使用swift開發(fā)了一段時間,但是感覺對一些基礎的東西了解不是比較透徹,在查詢了許多資料以后還是打算自己動手記錄一下,下面這篇文章主要給大家介紹了關于swift中AnyObject和Any的介紹與區(qū)別的相關資料,需要的朋友可以參考下。
    2017-12-12
  • swift中的@UIApplicationMain示例詳解

    swift中的@UIApplicationMain示例詳解

    這篇文章主要給大家介紹了關于swift中@UIApplicationMain的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • 利用Swift如何計算文本的size示例詳解

    利用Swift如何計算文本的size示例詳解

    這篇文章主要給大家介紹了關于利用Swift如何計算文本的size的相關資料,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們的工作或者學習具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • Swift?Error的處理方法說明

    Swift?Error的處理方法說明

    wift?是一個類型嚴格的語言,在很多情況下各種不匹配或者強制解包出錯都會導致系統(tǒng)崩潰。所以我們需要進行異常處理,在swift中也叫錯誤處理Error
    2022-08-08
  • Swift之for循環(huán)的基礎使用學習

    Swift之for循環(huán)的基礎使用學習

    這篇文章主要為大家介紹了Swift之for循環(huán)的基礎學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • SwiftUI?List在MacOS中的性能優(yōu)化示例

    SwiftUI?List在MacOS中的性能優(yōu)化示例

    這篇文章主要為大家介紹了SwiftUI?List在MacOS中的性能優(yōu)化示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Swift仿微信語音通話最小化時后的效果實例代碼

    Swift仿微信語音通話最小化時后的效果實例代碼

    這篇文章主要介紹了Swift仿微信語音通話最小化時后的效果的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03

最新評論