'substring(to:)' 已弃用:请使用带有 'partial range upto' 运算符的字符串切片下标

'substring(to:)' is deprecated: Please use String slicing subscript with a 'partial range upto' operator

如何将以下代码更新到 swift 的新版本:

self.areaCodeLael.text! = localNumber.substring(to: localNumber.index(localNumber.startIndex, offsetBy: 3))

我试过按照这个 post 但是我做不对

我将原始代码调整为 localNumber[..<3] 但我得到:

Cannot subscript a value of type 'String' with an index of type 'PartialRangeUpTo'

在这种情况下我会说 localNumber.prefix(3)。简短而甜美。

您尝试使用 localNumber[..<3] 的问题在于您无法将 Int 作为范围传递。你需要传递一个 String.Index.

您的代码必须是:

let index = localNumber.index(localNumber.startIndex, offsetBy: 3)
self.areaCodeLael.text = localNumber[..<index]

另请注意,您不希望在 text 之后使用 ! 运算符。