以编程方式访问iOS字典

我正在寻找一种方式来以编程方式访问iOS字典。 我需要的是从自定义应用程序中检索特定语言的单词列表。
可能吗? 有没有提供这种(或类似)function的API?
我查过苹果的文档,但没有发现任何有用的东西…可能有人指向我正确的方向?

我不认为有一个公共的API来访问embedded式字典。 最接近的是使用UITextChecker,但可能无法满足您的需求

作为替代,你可以find并embedded你想要的语言的词典词典? 这可能需要一些额外的工作

有一个API用于调出内置的字典用户界面(不是原始问题,而是在某些响应中提出的),包括检查给定单词是否被定义:

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

没有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); } 

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

对于即时search,您需要将这些单词加载到适合前缀search的结构中,如trie。 这里是一个示例项目 ,我就是这么做的。

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

没有API来做你所要求的。

我很久以前遇到了类似的问题,并做了其他人的build议:在我的应用程序中embedded英文字典。 从那以后,我把我的解决scheme变成了一个静态库,可以在www.lexicontext.com上find (注意,花费几块钱)。 考虑到下载它的开发者的数量,这似乎是一个常见的问题…

即使没有API,如果用户长按select的字,也可以自动使用。

如果您可以使用私有API,则可以使用以下代码来定义一个字词:

 _UIDictionaryManager *manager = [%c(_UIDictionaryManager) assetManager]; id definitions = [manager _definitionValuesForTerm:[self queryString]]; for(_UIDefinitionValue *item in definitions) { myModel = self; NSMutableAttributedString *def = [item definition]; NSString *str = [def string]; HBLogDebug(@"%@ = %@", [item localizedDictionaryName], str); }