我正在尝试在我的Swift项目中使用UITextChecker
。下面的代码目前在最后一行有错误:
var checker:UITextChecker = UITextChecker()
var textLength = countElements(textView.text)
var checkRange:NSRange = NSMakeRange(0, textLength)
var misspelledRange:NSRange = checker.rangeOfMisspelledWordInString(textView.text, range: checkRange, startingAt: checkRange.location, wrap: false, language: "en_Us")
var arrGuessed:NSArray = checker.guessesForWordRange(misspelledRange, inString: textView.text, language: "en_US")!
var correctedStr = textView.text.stringByReplacingCharactersInRange(misspelledRange, withString: [arrGuessed.objectAtIndex(0)])
错误说:
'NSRange' is not convertible to 'Range<String.index>'
我不确定我哪里出错了。 感谢
答案 0 :(得分:1)
您使用的stringByReplacingCharactersInRange
方法需要传递Range<String.Index>
,而不是NSRange
。您无法使用misspelledRange
,因为它的类型错误。可能的重复评论(NSRange to Range<String.Index>)中的链接包含从Range<String.Index>
或将NSRange
投射到text
NSString
的{{1}}的示例,其stringByReplacingCharactersInRange
方法 使用NSRange
。