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

use*_*052 10 substring swift swift4

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

self.areaCodeLael.text! = localNumber.substring(to: localNumber.index(localNumber.startIndex, offsetBy: 3))
Run Code Online (Sandbox Code Playgroud)

我曾尝试过这篇文章,但我无法正确 使用如何在Swift 4中使用字符串切片下标?

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

无法使用类型为"PartialRangeUpTo"的索引下标"String"类型的值

mat*_*att 18

我会说localNumber.prefix(3)在这种情况下.简短又甜蜜.

  • @ user1079052不,你想要`String(localNumber.prefix(3))`. (2认同)

rma*_*ddy 8

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

您的代码需要是:

let index = localNumber.index(localNumber.startIndex, offsetBy: 3)
self.areaCodeLael.text = localNumber[..<index]
Run Code Online (Sandbox Code Playgroud)

另请注意,您之后不需要!操作员text.