【问题标题】:How to convert an Alamofire response to string?如何将 Alamofire 响应转换为字符串?
【发布时间】:2020-06-20 12:59:45
【问题描述】:

有人知道如何将 () 类型的 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 中显示它。

提前谢谢你!

【问题讨论】:

  • 你为什么不使用 func responseString(queue: DispatchQueue = .main, encoding: String.Encoding? = nil, completionHandler: @escaping (AFDataResponse) -> Void) -> Self

标签: swift alamofire decodable


【解决方案1】:

fetch 正在调用一个异步函数以最终获得一个字符串,因此它本身不应返回一个字符串。

相反,它应该采用(String) -> Void 类型的完成函数,您将在当前打印的位置调用该函数。

当您调用fetch 时,您将向其传递一个设置标签文本的闭包。请记住分派到主队列来执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 2021-12-05
    • 2021-06-01
    • 2012-10-14
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多