我正在使用Swift的iOS应用程序上工作,该应用程序从用户那里获取一个单词并找到该单词的同义词。然后提供查找每个同义词的定义。

我已经做了大量研究,但是一直很难找到任何简单的方法来使用Swift快速访问同义词库或词典并获得同义词或定义。我对使用UIReferenceLibraryViewController不感兴趣,因为Apple反对大量使用UIReferenceLibraryViewController,我希望将我的应用程序发布到App Store上。我知道那里有一些使用Objective-C构建的字典,但是我不确定如何在我(当前)仅Swift的应用程序中实现这些字典。

我为牛津词典here找到了一个API,该API提供了Swift的实现,但是我不确定一些障碍(例如定价和我还没有的应用程序密钥),因此我想知道是否还有其他障碍方法在那里。

如果有人知道通过Swift访问同义词库或词典的简单方法,只是获得一个单词的同义词列表或单词的定义,我将不胜感激。如果没有简单的方法可以执行此操作,但是有很好的指导说明可以执行更复杂的操作,那么也将不胜感激。谢谢!

最佳答案

如前所述,有99%的API是付费服务或功能有限。但是我更喜欢使用的是

https://www.wordsapi.com/

使用wordapi的基本版本(免费版本),您每天最多可以拨打2500个电话。我建议您使用相同的方法,直到您的应用程序获得认可为止。稍后,如果您觉得自己的应用程序将要承担更多的负载,则可以将其更新为付费版本。

只是将示例请求放在如何快速制作相同的请求上。更换

MapKey

和你的

wordsApiKey

let string = "https://wordsapiv1.p.mashape.com/words/stack/synonyms"
let url = NSURL(string: string)
let request = NSMutableURLRequest(URL: url!)
request.setValue("MapKey", forHTTPHeaderField: "X-Mashape-Key")
request.HTTPMethod = "GET"
let session = NSURLSession.sharedSession()

let request = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
    if let resp = response as? NSHTTPURLResponse {
        // Do what you want to do with your response.
    }
}
request.resume()

放入我尝试搜索的“堆栈”一词的响应。 (我尝试使用curl命令来获取响应)
    {
  "word": "stack",
  "synonyms": [
    "smokestack",
    "push-down list",
    "push-down stack",
    "heap",
    "pile",
    "push-down storage",
    "push-down store",
    "batch",
    "deal",
    "flock",
    "good deal",
    "great deal",
    "hatful",
    "lot",
    "mass",
    "mess",
    "mickle",
    "mint",
    "mountain",
    "muckle",
    "passel",
    "peck",
    "plenty",
    "pot",
    "quite a little",
    "raft",
    "sight",
    "slew",
    "spate",
    "tidy sum",
    "wad"
  ]
}

除了同义词(例如反义词,定义,示例等)外,还有其他功能可以使用。
希望这对您有所帮助。

07-24 13:18