Создание приложения iOS Swift, которое получает синонимы и определения для слов, введенных пользователем

Я работаю над приложением iOS, используя Swift, которое берет слово от пользователя и находит синонимы для этого слова. Затем он предлагает найти определения для каждого из этих синонимов.

Я провел много исследований, но у меня возникли проблемы с поиском простого способа просто получить доступ к тезаурусу или словарю с помощью Swift и получить синонимы или определения. Я не заинтересован в использовании UIReferenceLibraryViewController, поскольку Apple против его широкого использования, и я надеюсь опубликовать свое приложение в App Store. Я знаю, что есть некоторые словари, созданные с использованием Objective-C, но я не уверен, как реализовать их в моем (в настоящее время) приложении только для Swift.

Я нашел один API для Оксфордских словарей здесь, который обеспечивает реализацию для Swift, но есть несколько препятствий (например, цены и ключи приложений, которых у меня еще нет), в которых я не уверен, и поэтому мне любопытно, есть ли какие-либо другие методы.

Если кто-нибудь знает простой способ получить доступ к тезаурусу или словарю через Swift, чтобы просто получить список синонимов для слова или определение слова, я был бы очень признателен. Если нет простых способов сделать это, но есть хорошие инструкции для более сложного способа сделать это, они также будут оценены. Спасибо!


person JoshSchellenberger    schedule 25.05.2018    source источник
comment
Если вы удовлетворены найденной библиотекой объектива-c (согласно вашему описанию в вопросе), вы можете использовать заголовок моста для использования библиотеки obj-c в самом вашем быстром проекте.   -  person Karthick Ramesh    schedule 25.05.2018
comment
Поскольку я новичок в том, что может сделать Swift, я не был уверен, насколько сложно это будет сделать. Тем не менее, я могу посмотреть это! Так что спасибо тебе! Однако большая проблема с лучшими версиями Objective-C, которые я обнаружил, заключалась в том, что за их использование обычно требуется какая-то плата, поэтому мне было любопытно, есть ли простая бесплатная программа. Если их нет, было бы хорошо знать!   -  person JoshSchellenberger    schedule 25.05.2018


Ответы (1)


Как вы упомянули, 99% API являются платными услугами или имеют ограниченные возможности. Но все же тот, который я бы предпочел использовать, это

https://www.wordsapi.com/

С базовой версией wordapi (бесплатная версия) вы можете совершать до 2500 звонков в день. Я бы посоветовал вам использовать то же самое, пока ваше приложение не получит признание. Позже, если вы почувствуете, что ваше приложение будет загружаться больше, вы можете обновить его до платной версии, что имеет смысл.

Просто поместите образец запроса о том, как сделать то же самое в Swift. Заменить

МапКей

с твоим

словаApiKey

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

Помимо синонимов, есть и другие функции, такие как антонимы, определение, примеры и т. д., которые вы можете использовать. Надеюсь, это поможет.

person Karthick Ramesh    schedule 25.05.2018
comment
Потрясающий! Я попробую это! Благодарю вас! - person JoshSchellenberger; 25.05.2018