如何在Swift 3中正确保护子字符串函数?

时间:2016-12-28 17:55:14

标签: swift

我有两个类似的函数来获取swift中字符串的子字符串(我只需要一个):

func substring(start: Int, end: Int) -> String {
    let c = self.characters
    let r = c.index(c.startIndex, offsetBy: start)..<c.index(c.startIndex, offsetBy: end)
    let substring = self[r]
    return substring
}

func substring(start: Int, end: Int) -> String {
    let startIndex = self.index(self.startIndex, offsetBy: start)
    let endIndex = self.index(self.startIndex, offsetBy: end)      
    return self[startIndex..<endIndex]
}

我该如何妥善保护?这是我可以在这里得到的主要错误:

  

致命错误:无法在startIndex之前递减

我需要能够将所有类型的错误值发送到此函数中,例如负start s和end s或end s小于{{1} }}秒。为了学习,我们假设有充分的理由在函数中允许无意义的参数。

我尝试过一些事情,比如:

start

但这些要么不起作用,要么导致我的应用冻结。

1 个答案:

答案 0 :(得分:-1)

你可以自己处理这个问题,但如果你想更轻松地处理Swift Strings,我建议你查看here