Swift 4:'substring(to :)'已被弃用

Mat*_*ift 17 ios swift swift4

我在将Swift 3代码转换为Swift 4时遇到了麻烦.我已成功地将应用程序中的所有其他内容成功翻译,但是我遇到了一行代码问题:

cleanURL = cleanURL.substring(to: cleanURL.index(before: cleanURL.endIndex))
Run Code Online (Sandbox Code Playgroud)

我得到的错误是这样的:

ViewController.swift:62:33: 'substring(to:)' is deprecated: Please use String slicing subscript with a 'partial range upto' operator.
Run Code Online (Sandbox Code Playgroud)

Ale*_*ica 28

好吧,做错误所说的,使用字符串切片下标和'partial range upto'运算符:

let actuallyCleanURL = kindaCleanURL[..<kindaCleanURL.endIndex]
Run Code Online (Sandbox Code Playgroud)

请注意,这会返回一个Substring.如果需要进行更多切片操作,请在此子字符串上执行.完成后,String通过String初始化程序(String(mySubString))将其提升为a ,从而生成内存副本.

  • 这不返回String,而是返回String.SubSequence.您需要将其转换为带有String(...)的字符串,因为它的工作方式类似于OP. (2认同)