UITextChecker功能下方不能正常工作

时间:2013-07-08 12:55:04

标签: ios ipad ios5 ios4

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,请帮助我,这背后的原因是什么。还有其他选择可以解决这个问题吗?

提前致谢

2 个答案:

答案 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”。