gpt4 book ai didi

ios - UIReferenceLibraryViewController hasDictionaryDefinition 仅适用于 iPhone 5s 上的模拟器

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:41 25 4
gpt4 key购买 nike

当我调用这段代码时:

NSString* word = @"hello";
bool response = [UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:word];

...在 iPhone 5s 或更高版本上,我将正确的值输入“response”(一个 bool 值,取决于变量“word”是否在本地字典中定义。在模拟器上执行大约需要 500 毫秒.

但是,当我在 iPhone 4s、5、6 或 6+ 模拟器(但不是 5s)上调用它时,它立即返回为 false 并将以下内容写入日志:

 +[_UIDictionaryManager _availableDefinitionDictionaries] returned nil. 
Error: Error Domain=ASError Code=21 "The operation couldn’t be completed.
(ASError error 21 - Unable to copy asset information)"

字典功能应适用于 iOS 5+。我没有任何 iPhone 4s/5/6/6+ 设备可以对此进行测试。

这是怎么回事?

最佳答案

我想我最终找到了答案,即控制台中的消息试图说明用户没有安装字典。

事实是

[UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:word];

如果出现以下情况,则返回 false:

  • 这个词是未定义的
  • 没有安装字典

这实际上是非常无益的。在我的特定英语应用程序用例中处理所有这些的策略是:

  1. 如果 [UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:word] 返回 true 则调用当前的“定义函数”并返回。

  2. 但是,如果它返回 false,则调用 dictionaryHasDefinitionForTerm 并使用应在所有英语词典中定义的单词,例如“the”或“word”。

  3. 如果“the”或“word”返回 true,则说明安装了词典,但安装的词典中未定义该词。缓存“the”/“word”的结果,这样你就不必重复第 2 步了,但不要永久保存它,因为用户或系统可能会删除字典——整个字典系统似乎有很多错误。

  4. 如果“the”或“word”返回 false,我们可以认为这意味着没有安装字典。在这一点上,我调用函数来呈现原始单词的定义(自然地显示为“无定义”,但这是用户访问“管理”词典功能以安装词典的唯一途径!) ,以及一个对话框,说明用户需要单击“管理”并安装英语词典(如果他们需要单词定义)。

离理想还有很长的路要走,但不确定在我的用例中我还能做些什么。

关于ios - UIReferenceLibraryViewController hasDictionaryDefinition 仅适用于 iPhone 5s 上的模拟器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com