创建一个 iOS Swift 应用程序来获取用户输入的单词的同义词和定义

Creating an iOS Swift Application that gets synonyms and definitions for words entered by the user

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

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

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

如果有人知道通过 Swift 访问同义词库或词典以简单地获取单词的同义词列表或单词定义的简单方法,我将不胜感激。如果没有简单的方法可以做到这一点,但有更好的说明可以使用更复杂的方法来执行此操作,那么我们也将不胜感激。谢谢!

正如您所提到的,99% 的 API 都是付费服务或功能有限。但我仍然更喜欢使用的是

https://www.wordsapi.com/

wordsapi 基本版(非付费版)每天最多可以拨打 2500 次电话。我建议您使用相同的方法,直到您的应用获得认可。稍后,如果您觉得您的应用即将产生更多负载,您可以更新到有意义的付费版本。

只需在 swift 中提出关于如何制作相同内容的示例请求。替换

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()

输入我对我尝试搜索的词 "stack" 的回复。 (我尝试使用 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"
  ]
}

除了反义词、定义、示例等同义词之外,您还可以使用它的其他功能。 希望这个有帮助。