'串(到:)'不推荐使用:请使用字符串切片下标,其部分范围为'操作者

时间:2017-08-28 15:49:10

标签: swift substring swift4

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

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

我尝试过这篇文章,但我无法做到 How can I use String slicing subscripts in Swift 4?

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

  

无法下标类型&#39;字符串&#39;索引类型为&#39; PartialRangeUpTo&#39;

2 个答案:

答案 0 :(得分:18)

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

答案 1 :(得分:7)

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

您的代码必须是:

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

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