objective-c – 有没有办法从NSString获取拼写检查数据?

objective-c – 有没有办法从NSString获取拼写检查数据?,第1张

概述我正在编写一个简单的移位密码iPhone应用程序作为宠物项目,我正在设计的一项功能是NSString的“通用”解密,它返回NSArray,所有NSStrings: - (NSArray*) decryptString: (NSString*)ciphertext{NSMutableArray* theDecryptions = [NSMutableArray arrayWithCapacity: 我正在编写一个简单的移位密码iPhone应用程序作为宠物项目,我正在设计的一项功能是Nsstring的“通用”解密,它返回NSArray,所有Nsstrings:

- (NSArray*) decryptString: (Nsstring*)ciphertext{NSMutableArray* theDecryptions = [NSMutableArray arrayWithCapacity:AlphaBET];for (int i = 0; i < AlphaBET; ++i) {    Nsstring* theNewPlainText = [self decryptString:ciphertext ForShift:i];    [theDecryptions insertObject:theNewPlainText                         atIndex:i];}return theDecryptions;

}

我真的想把这个NSArray传递给另一个尝试拼写检查数组中每个单独字符串的方法,并构建一个新数组,将字符串中最少的字符串放在较低的标记处,这样它们就会首先显示出来.我想像文本字段那样使用系统的字典,所以我可以匹配用户训练到手机中的单词.

我目前的猜测是将给定的字符串拆分为单词,然后使用NsspellChecker的-checkSpellingOfString:StartingAt:拼写检查每个字符串,并使用正确的单词数对数组进行排序.是否有现有的库方法或广为接受的模式,有助于为给定的字符串返回这样的值?

解决方法 好吧,我找到了一个使用UIKit / UITextChecker的解决方案.它正确地找到了用户最喜欢的语言字典,但我不确定它是否包含实际rangeOfMisspelleDWords …方法中的学习单词.如果没有,在底部if语句内调用currentWord上的[UITextChecker hasLearneDWord]应该足以找到用户教授的单词.

如评论中所述,使用[UITextChecker availableLanguages]中的每种前几种语言调用rangeOfMisspelleDWords可能是谨慎的,以帮助多语言用户.

-(voID) checkFordefineDWords {    NSArray* words = [message componentsSeparatedByString:@" "];    NSInteger wordsFound = 0;    UITextChecker* checker = [[UITextChecker alloc] init];    //get the first language in the checker's memory- this is the user's    //preferred language.    //Todo: May want to search with every language (or top few) in the array    Nsstring* preferredLang = [[UITextChecker availableLanguages] objectAtIndex:0];    //for each word in the array,determine whether it is a valID word    for(Nsstring* currentWord in words){        NSRange range;        range = [checker rangeOfMisspelleDWordInString:currentWord                                                 range:NSMakeRange(0,[currentWord length])                                             startingAt:0                                                   wrap:NO                                              language:preferredLang];        //if it is valID (no errors found),increment wordsFound        if (range.location == NSNotFound) {            //NSLog(@"%@ %@",@"ValID Word found:",currentWord);            wordsFound++;        }        else {            //NSLog(@"%@ %@",@"InvalID Word found:",currentWord);        }    }    //After all "words" have been searched,save wordsFound to valIDWordCount    [self setValIDWordCount:wordsFound];    [checker release];}
总结

以上是内存溢出为你收集整理的objective-c – 有没有办法从NSString获取拼写检查数据?全部内容,希望文章能够帮你解决objective-c – 有没有办法从NSString获取拼写检查数据?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1010048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存