String.Index如何在Swift中工作

我一直在用Swift 3更新一些旧代码和答案,但是当我接触Swift Strings和Indexing时,很难理解。


具体来说,我正在尝试以下操作:


let str = "Hello, playground"

let prefixRange = str.startIndex..<str.startIndex.advancedBy(5) // error

第二行给我以下错误


“ advancedBy”不可用:要使索引前进n个步骤,请在生成索引的CharacterView实例上调用“ index(_:offsetBy :)”。


我看到String有以下方法。


str.index(after: String.Index)

str.index(before: String.Index)

str.index(String.Index, offsetBy: String.IndexDistance)

str.index(String.Index, offsetBy: String.IndexDistance, limitedBy: String.Index)

刚开始这些让我很困惑,所以我开始和他们一起玩直到我理解它们。我在下面添加一个答案,以显示它们的用法。


Cats萌萌
浏览 1757回答 3
3回答

蝴蝶刀刀

在tableViewController内部创建一个UITextView。我使用了函数:textViewDidChange,然后检查了返回键输入。如果检测到返回键输入,则删除返回键的输入并关闭键盘。func textViewDidChange(_ textView: UITextView) {&nbsp; &nbsp; tableView.beginUpdates()&nbsp; &nbsp; if textView.text.contains("\n"){&nbsp; &nbsp; &nbsp; &nbsp; textView.text.remove(at: textView.text.index(before: textView.text.endIndex))&nbsp; &nbsp; &nbsp; &nbsp; textView.resignFirstResponder()&nbsp; &nbsp; }&nbsp; &nbsp; tableView.endUpdates()}
打开App,查看更多内容
随时随地看视频慕课网APP