Swift 4-'substring(to :)'已过时-我的代码的替代方法

时间:2019-06-11 11:21:10

标签: ios swift swift4

我的代码如下

> all(sort(names(boroughs_nb)) == sort(levels(elections$idx)))
[1] TRUE

我的目标是获取文本的前3000个字符(如果长度超过3000个字符)。

但是,我收到以下警告:

  

'substring(to :)'已过时:请使用String切片下标   使用“部分范围最大”运算符

可以替代我的代码。我不是一个非常专业的编码员。因此,任何帮助都会很棒。

3 个答案:

答案 0 :(得分:5)

使用所需的prefix(_:)只需在theReview上调用length

  

函数前缀(_ maxLength:Int)->子字符串

     

返回不超过指定最大长度的子序列,包含   集合的初始元素。

     

如果最大长度超过了   集合,结果包含集合中的所有元素

var theReview = addReview.text
theReview = String(theReview.prefix(3000))

注意:无需检查theReview's length是否超过3000。它会由prefix(_:)本身处理。

答案 1 :(得分:1)

这可能会对您有帮助

var theReview = addReview.text
theReview = String(theReview.prefix(3000))

答案 2 :(得分:0)

在切片中使用String init。

let index = theReview.index(theReview.startIndex, offsetBy: 3000)
theReview = String(theReview[theReview.startIndex..<index])

或先前回答中提到的prefix