2017-09-25 9 views
2

文字列に基づいて範囲を作成する方法。以下のコードでは、 "タイプ 'Range'の値を期待される引数型 'UITextRange'に変換できません"というエラーが表示されます。 FYI print(firstString [range])は "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

try 'textView.text.replace(range、withText:secondString)' –

答えて

0

コードには2つの問題があります。最初に、textViewテキストプロパティでメソッドを適用する必要があります。第2の問題は、間違ったメソッドを使用して、replaceSubrangeメソッドを使用する必要がある文字列の範囲を置き換えることです。したがって、コードは次のようになります。

textView.text.replaceSubrange(range, with: secondString) 
関連する問題