我正在使用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"
]
}
除了同义词(例如反义词,定义,示例等)外,还有其他功能可以使用。
希望这对您有所帮助。