Как преобразовать ответ Alamofire в строку? - PullRequest
2 голосов
/ 08 марта 2020

Кто-нибудь знает, как преобразовать ответ alamofire типа () в строку?

Вот пример запроса:

func fetch(jan: String) { AF.request("https://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch?appid=XXXXXX&jan=\(jan)&hits=50").responseDecodable(of: Welcome.self)
    { response in
        print("\(response.value?.resultSet.the0.result.the1?.price.value ?? "is nil")")
        }
}

Я хотел бы, чтобы функция fetch ( ) возвращает строку вместо объекта () для последующего ее отображения, например, в displayLabel.text.

Заранее спасибо!

1 Ответ

1 голос
/ 08 марта 2020

fetch вызывает асинхронную функцию для получения строки, поэтому она не должна сама возвращать строку.

Вместо этого должна использоваться функция завершения типа (String) -> Void, которую вы будете вызывать там, где вы в данный момент печатаете.

Когда вы звоните fetch, вы передаете ему закрытие, которое устанавливает текст метки. Не забудьте отправить в главную очередь, чтобы сделать это.

...