NSString * currentWord;
currentWord = Text.text;
UITextChecker* checker = [[UITextChecker alloc] init];
NSString* preferredLanguage = [[UITextChecker availableLanguages] objectAtIndex:0];
NSRange range;
range = [checker rangeOfMisspelledWordInString:currentWord
range:NSMakeRange(0, [currentWord length])
startingAt:0
wrap:NO
language:preferredLanguage];
if (range.location == NSNotFound)
{
NSLog(@"Word found");
}
else
{
NSLog(@"Word not found");
}
//这里我使用了UITextChecker函数,即使对于错误的单词,上面的函数也显示正确的单词语句 例如:错误的单词,如abcd, BCDE, CDEF, CAPs,请帮助我,这背后的原因是什么。还有其他选择可以解决这个问题吗?
提前致谢
答案 0 :(得分:2)
UITextChecker *Checker = [[UITextChecker alloc] init];
NSRange range = NSMakeRange(0, inputWord.length);
NSRange misspelledRange = [Checker rangeOfMisspelledWordInString:[Sentence lowercaseString] range:range startingAt:0 wrap:NO language:@"en_IN"];
bool isValidWord = misspelledRange.location == NSNotFound;
//NSLog(@"----%i", misspelledRange.location);
if (isValidWord)
{
isValidWord = [self checkIfWordExistsInSuggestedSpellings:Sentence];
NSLog(@"++++%d", isValidWord);
}
return isValidWord;
}
else
{
NSLog(@"Invalid word");
return false;
}
答案 1 :(得分:0)
NSNotFound意味着找不到你要求的任何东西。
==
是相等运算符。当range.location
等于NSNotFound
时,您的代码会打印“找到Word”。