以编程方式访问iOS词典

Man*_*lio 28 dictionary objective-c ios

我正在寻找一种以编程方式访问iOS词典的方法.我需要的是从自定义应用程序内检索特定语言的单词列表.
可能吗?是否有任何API提供此(或类似)功能?
我检查了Apple文档,但没有找到任何有用的东西......有人能指出我正确的方向吗?

mrz*_*zmr 34

这里为抚育内置的字典UI(不是原来的问题,但在一些答复提出的),包括检查对于给定的字是否被定义的API:

if ([UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:@"word"]) {
    UIReferenceLibraryViewController* ref = 
        [[UIReferenceLibraryViewController alloc] initWithTerm:@"word"];
    [currentViewController presentViewController:ref animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)


Suh*_*tel 12

我认为没有公共API来访问嵌入式词典.最接近的是使用UITextChecker但可能无法满足您的需求

作为替代方案,您可以在所需语言中找到并嵌入单词词典?这可能需要一些额外的工作


Jan*_*ano 10

没有API,但如果您只需要一个单词列表,则可以从/usr/share/dict/words以下位置读取:

    NSString *allTheWords = [NSString stringWithContentsOfFile: @"/usr/share/dict/words"
                                                      encoding: NSUTF8StringEncoding
                                                         error: nil];
    for (NSString *line in [allTheWords componentsSeparatedByString:@"\n"]) {
        NSLog(@"%@",line);
    }
Run Code Online (Sandbox Code Playgroud)

如果您需要一个任意的单词列表,您可以从几个在线资源中获取它,这里有一个./ usr/share/dict/README的README说iOS单词列表使用ftp://ftp.ox.ac.uk/pub/wordlists

对于即时搜索,您需要在适合前缀搜索的结构上加载单词,如trie.这是一个示例项目,我就是这样做的.

如果您需要一个字典,请在线获取一个字典,然后在trie节点中包含指向单词条目的指针.如果加载花费太多时间,您可以尝试在后台加载,或者压缩或序列化trie.