2017-09-25 3 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

시도 그것을'textView.text.replace (범위, withText : secondString)' –

답변

0

코드에 두 가지 문제점이 있습니다. 먼저 textView 텍스트 속성에 메서드를 적용해야합니다. 두 번째 문제는 잘못된 메서드를 사용하여 replaceSubrange 메서드를 사용해야하는 문자열 범위를 바꾸는 것입니다. 그래서 코드는 다음과 같이 보일 것입니다 :

textView.text.replaceSubrange(range, with: secondString) 
관련 문제