首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将“Range<String.Index>”类型的值转换为预期的参数类型“UITextRange”

无法将“Range<String.Index>”类型的值转换为预期的参数类型“UITextRange”
EN

Stack Overflow用户
提问于 2017-09-25 12:56:14
回答 1查看 1.4K关注 0票数 2

如何基于字符串创建范围。通过下面的代码,我得到了错误“无法将'Range‘类型的值转换为预期的参数类型'UITextRange'”。FYI (FirstStringrange)成功输出"xxx“。

代码语言:javascript
复制
class ViewController: UIViewController {
  @IBOutlet weak var textView: UITextView!
  let firstString: String = "xxx"
  let secondString: String = "yyy"

  override func viewDidLoad() {
    super.viewDidLoad()
    textView.text = firstString
  }

  func replace() {
    var finalString: String?
    let range = firstString.startIndex..<firstString.endIndex
    print(firstString[range])
    textView.replace(range, withText: secondString)
  }

  @IBAction func replaceButton(_ sender: Any) {
    replace()
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-25 13:34:14

您的代码中有两个问题。首先,您需要在textView文本属性中应用您的方法。第二个问题是,您使用了错误的方法,要替换字符串的范围,需要使用replaceSubrange方法。所以您的代码应该如下所示:

代码语言:javascript
复制
textView.text.replaceSubrange(range, with: secondString)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46405822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档