0

任何人都可以复制这个结果吗?我正在测试rangeOfMisspelledWordInString(in 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 也有效的单词:顺便说一句,我确保在测试之前将以下单词转换为小写。

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

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

4

2 回答 2

1

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

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

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

于 2012-12-18T20:33:56.300 回答
1

是的,我可以重现它,我称之为错误。如果我输入您的测试词@“lhpcjeuw”,它会将其视为有效词。但是,如果我使用 @"lahpcjeuw"(在第二个位置添加了一个“a”),它会捕获它。我注意到蒂姆做了同样的事情——在写这个答案时,拼写检查器在我输入的时候强调了第二个而不是第一个。

于 2012-12-18T20:43:10.533 回答