Swift M出现致命错误:无法在startIndex之前递减。请解决此问题
尝试执行以下代码时出现致命错误:Swift M出现致命错误:无法在startIndex之前递减。请解决此问题,swift,Swift,尝试执行以下代码时出现致命错误: let truncated = "{" + stringToSend.substring(to: stringToSend.characters.index(before: stringToSend.endIndex)) + "}" //stringToSend = "tttttttttttttttttttttttttttttttttttttttttt" + truncated + "@" 如果stringToSend为空,则
let truncated = "{" + stringToSend.substring(to: stringToSend.characters.index(before: stringToSend.endIndex)) + "}"
//stringToSend = "tttttttttttttttttttttttttttttttttttttttttt" + truncated + "@"
如果stringToSend为空,则会发生此错误
代码在endIndex之前获取索引。如果字符串为空,则endIndex之前的索引位于startIndex之前,这会引发异常
解决方案:确保stringToSend不是空的因为字符串为空或只有一个字符,所以会发生错误 一个简单的if可以解决它 斯威夫特3
if stringToSend.count > 1{
let truncated = stringToSend.substring(to: stringToSend.characters.index(before: stringToSend.endIndex))
}
Swift 4:
if stringToSend.count > 1{
let truncated = String(stringToSend[stringToSend.startIndex...stringToSend.index(before: stringToSend.endIndex)])
}
你的目的是什么?