如何修复不推荐使用的子字符串(使用:)
How to fix deprecated substring(with: )
我正在完成一本书的练习,作者有以下代码。
func getMatchingString(str: String) -> String? {
if let newMatch = str.range(of:regExFindMatchString,
options:.regularExpression) {
return str.substring(with: newMatch)
} else {
return nil
}
}
str.substring(with: newMatch) 行显示 'substring(with:) is deprecated use String slicing subscript.'
我试图弄清楚用什么来解决这个问题,但我尝试过的一切都表明我对这个问题的理解还不够深入,无法解决它。我知道 newMatch 是一个范围对象,只是不知道如何有效地使用它。
非常感谢任何帮助..
鲍勃
只需将下标与您从 if let
获得的范围一起使用
if let newMatchRange = str.range(of:regExFindMatchString, options:.regularExpression) {
return String(str[newMatchRange])
} else {
return nil
}
您需要将其转换为字符串,因为该方法实际上是 returns 子字符串类型,而不是字符串。
我正在完成一本书的练习,作者有以下代码。
func getMatchingString(str: String) -> String? {
if let newMatch = str.range(of:regExFindMatchString,
options:.regularExpression) {
return str.substring(with: newMatch)
} else {
return nil
}
}
str.substring(with: newMatch) 行显示 'substring(with:) is deprecated use String slicing subscript.'
我试图弄清楚用什么来解决这个问题,但我尝试过的一切都表明我对这个问题的理解还不够深入,无法解决它。我知道 newMatch 是一个范围对象,只是不知道如何有效地使用它。
非常感谢任何帮助..
鲍勃
只需将下标与您从 if let
if let newMatchRange = str.range(of:regExFindMatchString, options:.regularExpression) {
return String(str[newMatchRange])
} else {
return nil
}
您需要将其转换为字符串,因为该方法实际上是 returns 子字符串类型,而不是字符串。