我应该如何与iPhone应用程序中的单词基础进行交互?

时间:2015-02-08 01:45:20

标签: ios data-structures

我正在为iPhone制作文字游戏。用户可以从单独的字母构造单词。我需要检查这是一个真实的词,用户制作的,或某种毫无意义的东西,如“sfugh”。我该如何更好地实现这一点?我应该在程序中有一个好词典(我认为这是一个坏主意,因为有大量的单词,它会工作很慢)或者可能有一种在线词典,我可以检查我的代码中的单词,或者我应该做个特丽?或者也许其他解决方案在哪里?

2 个答案:

答案 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似乎将单个字母计为有效字。