Swifter {Swift Developer}

메뉴

stringByReplacingCharactersInRange 컴파일 오류 해결방법

환경: Xcode 6.1

UITextFieldDelegate 의 textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) 에서 지금까지 Objective-C에서 당연하게 생각되는 형태로 코딩하면 Swift에서는 컴파일오류가 발생합니다.

[swift]

func textField (textField : UITextField, shouldChangeCharactersInRange range : NSRange, replacementString string : String) -> Bool {
let replacedText = textField. text. stringByReplacingCharactersInRange (range, withString : string) // NSRange ‘is not convertible to’Range <String.Index> ‘

// …

return true
}

[/swift]

다음과 같이 한번에 NSString으로 변환한 문자열에 stringByReplacingCharactersInRange 을 실행하면 좋습니다.

[swift]

let text = textField. text as NSString
let replacedText = text. stringByReplacingCharactersInRange (range, withString : string)

[/swift]

한줄로 처리하고 싶다면,

[swift]

let replacedText = (textField. text as NSString) stringByReplacingCharactersInRange (range, withString : string)

[/swift]

Facebook Comments

카테고리:   Swift

댓글

죄송하지만 댓글은 닫혀 있습니다.