2017-09-25 85 views
2

如何基于字符串创建范围。使用下面的代码,我得到错误“无法将类型'Range'的值转换为期望的参数类型'UITextRange'”。 FYI打印(firstString [范围])成功输出“xxx”。无法将类型'Range <String.Index>'的值转换为期望的参数类型'UITextRange'

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() 
    } 
} 
+0

尝试'textView.text.replace(range,withText:secondString)' –

回答

0

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

textView.text.replaceSubrange(range, with: secondString) 
相关问题