我正在为iPhone制作文字游戏。用户可以从单独的字母构造单词。我需要检查这是一个真实的词,用户制作的,或某种毫无意义的东西,如“sfugh”。我该如何更好地实现这一点?我应该在程序中有一个好词典(我认为这是一个坏主意,因为有大量的单词,它会工作很慢)或者可能有一种在线词典,我可以检查我的代码中的单词,或者我应该做个特丽?或者也许其他解决方案在哪里?
答案 0 :(得分:0)
使用预先填充的sqlite数据库。这样,您可以使用字符串索引更快地在数据库中进行搜索。
答案 1 :(得分:0)
您可以使用Apple的原生UITextChecker来确定单词是否拼写错误/有效。 Here's a sample project on GitHub。这样,您就不必担心组装自己的数据库了。
为了便于消化,这里是执行所有工作的代码
- (IBAction)textFieldTextDidChange:(id)sender {
NSRange rangeOfMisspelling = [self.textChecker rangeOfMisspelledWordInString:self.textField.text
range:NSMakeRange(0, self.textField.text.length)
startingAt:0
wrap:NO
language:@"en_US"];
// no misspellings
if (rangeOfMisspelling.location == NSNotFound) {
self.textLabel.text = @"Valid word!";
}
// misspellings
else {
self.textLabel.text = @"Not a word.";
}
}
有一点需要注意的是,UITextChecker似乎将单个字母计为有效字。