2013-07-08 111 views
1
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, 通行證,請幫助我這是什麼原因。有沒有其他的選擇來解決這個問題?下面UITextChecker功能工作不正常

在此先感謝

+0

我想你應該給'[[UITextChecker availableLanguages] objectAtIndex:0]'來獲取英文。你可以試試dat。 – HRM

+0

我將對象索引更改爲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; 

} 
0

NSNotFound
意味着,無論你問沒有被發現。 ==是平等運算符。當 range.location等於 NSNotFound時,您的代碼將打印「找到的字」。