gpt4 book ai didi

Swift 4 中的字符串、子字符串、范围、NSRange

转载 作者:行者123 更新时间:2023-12-03 23:18:49 24 4
gpt4 key购买 nike

我正在使用以下代码来获取 String来自 NSRange 的子串:

func substring(with nsrange: NSRange) -> String? {
guard let range = Range.init(nsrange)
else { return nil }
let start = UTF16Index(range.lowerBound)
let end = UTF16Index(range.upperBound)
return String(utf16[start..<end])
}

(来自: https://mjtsai.com/blog/2016/12/19/nsregularexpression-and-swift/)

当我使用 Swift 4 (Xcode 9b4) 进行编译时,对于声明 start 的两行,我收到以下错误和 end :
'init' is unavailable
'init' was obsoleted in Swift 4.0

我很困惑,因为我没有使用初始化。

我怎样才能解决这个问题?

最佳答案

在 Swift 4 中使用 Range(_, in:) 将 NSRange 转换为 Range。

extension String {
func substring(with nsrange: NSRange) -> Substring? {
guard let range = Range(nsrange, in: self) else { return nil }
return self[range]
}
}

关于Swift 4 中的字符串、子字符串、范围、NSRange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45449186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com