rangeOfMisspelledWordInString查找随机字母作为有效字

有人可以复制这个结果吗? 我正在测试rangeOfMisspelledWordInString (在iOS )以查找拼写错误的单词,一些随机字母返回有效单词,如下所示。

 UITextChecker* pSpellChecker = [[[UITextChecker alloc] init] autorelease]; NSRange rangeWord = NSMakeRange(0, 8); NSRange rangeCheck = [_pSpellChecker rangeOfMisspelledWordInString:@"lhpcjeuw" range:rangeWord startingAt:0 wrap:NO language:@"en_US"]; if (rangeCheck.location == NSNotFound) { NSLog(@"Valid Word:"); } 

下面是一些根据rangeOfMisspelledWordInString也有效的单词:BTW,我确保在测试之前将以下单词转换为小写。

 LD THY THE THECA TD HL HT YD YLEQXXH DV DVX DVXX DVXXD DVXXDX DVXXX DVHXG DVHEJWCP DH DH DPJLEHHY 

很奇怪。 难道我做错了什么?

我认为“the”和“thy”可能只是有效的词;)

除此之外,我最好的猜测是文本系统不能提供对该词的猜测,因此完全忽略它 – “拼写错误的单词”的语义含义可能不包括“字母串,这些字母不可能是拼写错误的一个字。” 我注意到当我将这些字符串键入系统文本字段(例如在Messages中)时,我没有得到任何替换建议。

您还可以确保您的UITextChecker实例未设置为忽略这些特定单词; 看看ignoredWords属性 。

是的,我可以重现它,我会称之为bug。 如果我输入你的测试词,@“lhpcjeuw”,它会把它当成一个有效的词。 但是,如果我使用@“lahpcjeuw”(在第二个位置添加“a”),它会捕获它。 我注意到Tim做了同样的事情 – 在写这个答案时,拼写检查器强调了第二个,但不是我输入的第一个。