2

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

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

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

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

4

1 回答 1

3

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

https://www.wordsapi.com/

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

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

地图键

和你的

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"
  ]
}

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

于 2018-05-25T05:04:12.980 回答