Xcode 4.5中的dictionaryHasDefinitionForTerm问题

4
   fourLetterWord = @"isdjfiodjof";
   if ([UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:fourLetterWord]) {
        self.display.text = fourLetterWord;
        return;
    }
    else
        fourLetterWord = @"";

这个字符串被接受了。我不知道我在这里做错了什么,但是在4.5之前这个代码是可以运行的。这是Xcode 4.5的问题还是我的代码有问题?


有什么问题吗?你是不是进入了if语句的else子句而不是if子句? - rdelmar
字符串 "isdjfiodjof" 被接受了。它应该回答 NO,因为这显然不在英语词典中。 - AGleasonTU
我现在其实遇到了同样的问题。你最终解决了吗?我现在无法让它返回 false,之前都能正常工作。 - AJak
这只发生在iOS6吗?不管怎样,这听起来像是一个bug,应该在http://bugreport.apple.com上向苹果报告。 - Robotic Cat
还没有让它正常工作,我希望最近的更新可以修复它,但事实并非如此。现在我认为这只是苹果可以解决的问题。 - AGleasonTU
3个回答

2

我刚遇到了同样的问题并且开始尝试解决它。[UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:fourLetterWord] 这个方法因为某些原因在模拟器中无法使用,需要苹果修复。

但是如果你在设备上测试你的应用程序,[UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:fourLetterWord] 方法可以运行并给出正确的结果。

虽然有点慢。

希望能有所帮助。


1

dictionaryHasDefinitionForTerm:如果没有下载字典(因为如果没有字典,它无法知道单词是否在其中),则始终返回 YES

当您在任何应用程序中实际显示字典弹出窗口时,将自动提供下载。我认为iOS 6引入了按需下载功能,同时还引入了其他语言的字典。


0

我的经验是,在运行iOS 5.1.1的iPad上,这个方法很好用,但在运行iOS 6.1.3的iPod上每次都返回TRUE。我已经向苹果报告了这个问题。

更新:omz是正确的。一旦我在iOS6的iPod上下载了苹果的字典,它就可以正确验证单词了。由于我很久以前就在iPad上安装了iOS5,所以我不记得我是手动安装的还是别人帮我安装的。无论如何,在iOS6上需要手动安装才能使用这种方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接