2

我正在尝试UITextChecker在我的 Swift 项目中使用。下面的代码当前在最后一行有一个错误:

    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>'

我不确定我哪里出错了。谢谢

4

1 回答 1

1

stringByReplacingCharactersInRange您使用的方法Range<String.Index>需要传入,而不是NSRange. 你不能使用misspelledRange,因为它是错误的类型。可能的重复注释中的链接(NSRange 到 Range<String.Index>)有从 a 派生Range<String.Index>NSRange强制转换text为的示例NSString,其stringByReplacingCharactersInRange方法确实使用了NSRange

于 2014-12-17T02:19:13.737 回答