首页 > 解决方案 > 如何修复不推荐使用的子字符串(带有:)

问题描述

我正在完成一个书籍练习,作者有以下代码。

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 是一个范围对象,只是不知道如何有效地使用它。

任何帮助是极大的赞赏..

鲍勃

标签: swiftsubstring

解决方案


只需将下标与您从if let

if let newMatchRange = str.range(of:regExFindMatchString,   options:.regularExpression) {
    return String(str[newMatchRange])
} else {
    return nil
}

您需要将其转换为字符串,因为该方法实际上返回的是子字符串类型,而不是字符串。


推荐阅读