func isReal(word: String) -> Bool {
let checker = UITextChecker()
let range = NSRange(location: 0, length: word.utf16.count)
let misspelledRange = checker.rangeOfMisspelledWord(in: word, range: range, startingAt: 0, wrap: false, language: "en")
return misspelledRange.loaction == NSNotFound
}
- UITextChecker : 스팰링 오류를 발견하도록 설계된 iOS 클래스이다. 주어진 단어가 실제 존재하는지 아닌지 알 수 있다.
- NSRange : 시작 위치와 길이를 가지는 문자열 범위를 저장하는데 사용된다. 전체 문자열을 검사하기 위해 시작 위치를 0 으로 두고, 길이에 문자열 길이를 사용한다.
- checker.rangeOfMisspelledWord() : UITextChecker 인스턴스의 메서드이다.
- in : 문자열
- range : 확인해야하는 범위
- startingAt : text checker가 확인을 시작해야하는 지점
- wrap : startingAt에서 철자가 틀린 단어가 발견되지 않은 경우 UITextChecker가 시작점에서 시작해야하는지 여부를 설정
- langeuage : 확인해야하는 언어
- return misspelledRange.location == NSNotFound : rangeOfMisspelledWord를 호출하면 맞춤법 오류 위치를 알려주는 또다른 NSRange가 반환된다. 그러나 우리는 오류의 존재 여부를 알고 싶고, 아무것도 발견되지 않았을 경우 NSRange의 특수 위치 NSNotFound가 반환된다. 따라서 NSNotFound이면 유효한 단어이다.