2017-09-25 47 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) 
相關問題