如何确保调用'String.Index.advancedBy'won';不会引起撞车吗?
在如何确保调用'String.Index.advancedBy'won';不会引起撞车吗?,string,swift,String,Swift,在字符串.CharacterView.Index上调用advancedBy将导致EXC\u BAD\u访问如果前进距离太大。这可以在这里看到: let inputString = "Hello, world!" let index = inputString.startIndex let distance = 100 let newIndex = index.advancedBy(distance) // fatal error: cannot increment endIndex 现在,如果
字符串.CharacterView.Index
上调用advancedBy
将导致EXC\u BAD\u访问
如果前进距离太大。这可以在这里看到:
let inputString = "Hello, world!"
let index = inputString.startIndex
let distance = 100
let newIndex = index.advancedBy(distance) // fatal error: cannot increment endIndex
现在,如果
index
已经从字符串的startIndex
前进了未知的次数,并且distance
是一些不安全的用户输入,该怎么办?如何验证按给定距离推进索引不会导致崩溃?您可以使用方法advancedBy(n:Self.distance,limit:Self)并将inputString endIndex设置为限制:
let newIndex = index.advancedBy(distance, limit: inputString.endIndex)
所以我可以,不确定我在查看
advancedBy
API详细信息时怎么会错过这个!