Swift – 打开内置的iOS字典来查找单词的含义

在我的项目中,我想打开iOS内置的字典来查找单词的含义,甚至更好,直接在我的应用程序中获取单词的含义。

目前我发现如何检查一个string拼写正确使用UITextChecker

func wordIsReal(word: String) -> Bool { let checker = UITextChecker() let range = NSMakeRange(0, count(word)) let misspelledRange = checker.rangeOfMisspelledWordInString(word, range: range, startingAt: 0, wrap: false, language: "en") return misspelledRange.location == NSNotFound } 

我find了Object-C的解决scheme:

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

我已经编辑了Swift

 let word = "home" if UIReferenceLibraryViewController.dictionaryHasDefinitionForTerm(word) { let ref: UIReferenceLibraryViewController = UIReferenceLibraryViewController(term: word) self.presentViewController(ref, animated: true, completion: nil) } 

如果单词在设备中保存的字典中有定义,则此解决scheme允许打开内置字典

试试这个

 func wordIsReal(word: String) -> Bool { let checker = UITextChecker() let range = NSMakeRange(0, count(word)) let misspelledRange = checker.rangeOfMisspelledWordInString(word, range: range, startingAt: 0, wrap: false, language: "en_US") NSLog("misspelledRange:\(misspelledRange)") NSLog("word:\(word)") var arrGuessed:NSArray? = checker.guessesForWordRange(misspelledRange, inString: word, language: "en_US")as NSArray! NSLog("arrGuessed:\(arrGuessed)") //var correctedStr = textAsNSString.stringByReplacingCharactersInRange(misspelledRange, withString: arrGuessed.objectAtIndex(0) as String) return misspelledRange.location == NSNotFound }