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)])
}
你的目的是什么?