我使用下面的代碼從一個NSRange
一個String
子:字符串,字符串,範圍,NSRange斯威夫特4
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/)
當我和斯威夫特4編譯(9B4的Xcode),我獲取該聲明start
和end
兩條線以下錯誤:
'init' is unavailable
'init' was obsoleted in Swift 4.0
我我很困惑,因爲我沒有使用init。
我該如何解決這個問題?
的Xcode迫使我修改代碼如下:'FUNC子(與nsrange:NSRange) - >字符串? {rangerange(nsrange,in:self)else {return nil} return String(self [range]) } – Koen
如果你讓這個函數返回一個子串而不是一個字符串,你將不會有轉換結果。 –
啊,我沒有意識到Substring是一種類型,我認爲這是一個錯字。 – Koen