Если вы используете название напитка, как в strDrink
, то проблема в том, что вы отправляете что-то вроде:
'57 Chevy с белым номерным знаком
Это означает, что URL будет выглядеть примерно так:
https://www.thecocktaildb.com/api/json/v1/1/search.php?s='57 Шевроле с белым номерным знаком
И не будет переведен в кодированный URLURL автоматически.
Проблема с этим подходом заключается в том, что вам необходимо url кодировать имя перед отправкой его в API.Что-то вроде:
networkDataService.fetchDrink(drinkName: drinkName.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)) { (coctail) in
self.coctail = coctail
}
Таким образом, вы получите URL с чем-то вроде:
https://www.thecocktaildb.com/api/json/v1/1/search.php?s=%2757%20Chevy%20with%20a%20White%20License%20Plate
Ссылаясь на эту кодированную строку URL: Swift - кодирование URL
С другой стороны, ваш API возвращает идентификатор напитка, idDrink
, который следует использовать для получения сведений вместо запуска поиска, а затем извлечения первогоконкретное имяЧто может случиться позже, так это то, что у вас может быть два Джека Дэниела с разными значениями, и вы всегда будете показывать первое.