Swift 4:'substring(to :)'已弃用
问题描述:
我无法将我的Swift 3代码转换为Swift 4.我已经成功翻译了应用程序中的所有内容,但遇到单行问题代码:Swift 4:'substring(to :)'已弃用
cleanURL = cleanURL.substring(to: cleanURL.index(before: cleanURL.endIndex))
我得到的错误是这样的:
ViewController.swift:62:33: 'substring(to:)' is deprecated: Please use String slicing subscript with a 'partial range upto' operator.
答
嘛,做错误说什么,用String切片标有“局部范围高达”运营商:
let actuallyCleanURL = kindaCleanURL[..<kindaCleanURL.endIndex]
请注意,这将返回Substring
。如果您需要执行更多的切片操作,请在此子字符串上执行操作。完成后,通过运行String
初始化程序(String(mySubString)
)将其升级到String
,从而导致创建内存副本。
+1
这不会返回一个字符串,而是一个String.SubSequence。你需要将它转换为一个带有String(...)的字符串,因为它像OP所期望的那样工作。 – timgcarlson
+0
@timgcarlson好点 – Alexander
你确定变异变量是有意义的,而不是定义一个新变量吗?如果在去掉最后一个符号之后URL是“干净的”,为什么甚至在此之前称为“cleanURL”? – Alexander
检查[此线程](https://stackoverflow.com/q/45562662/6541007)。似乎是重复的。 – OOPer