gpt4 book ai didi

swift - 从抛出函数到非抛出函数的无效转换

转载 作者:行者123 更新时间:2023-11-28 14:06:01 26 4
gpt4 key购买 nike

  • xcode:版本 10.0 (10A255)
  • swift :4.2
  • 莫亚:4.5

我尝试创建 NetworkManager 结构。

struct NetworkManager: Networkable {

internal var provider = MoyaProvider<VideoAPI>(endpointClosure: endpointClosure, requestClosure: requestClosure, plugins: [networkPlugin], trackInflights: false)
static let environment: APIEnvironment = .development

func recentlyList(page: Int, completion: @escaping (String) -> (Void)) {
provider.request(.recentlyList(params: ["page": page])) { (result) in
switch result {
case let .success(response):
do {
let jsonData = try JSON(data: response.data)
print(jsonData)

completion(String(data: response.data, encoding: String.Encoding.utf8)!)
} catch {
print(error)
}
case let .failure(error):
print(error)
}
}
}
}

screenshot

我该如何解决这个问题?

我从 here 学到了这段代码

--------------------更新

编辑 Podfile,将 Moya 更改为 pod 'Moya', git: 'https://github.com/Moya/Moya.git', branch: 'development'

在终端中运行 pod install,它正在运行。

最佳答案

您的代码中没有 catch,这意味着您没有捕获解析错误,导致您的闭包抛出

添加 catch 应该可以解决问题:

do {
let jsonData = try JSON(data: response.data)
print(jsonData)

completion(String(data: response.data, endcoding: String.Encoding.utf8)!)
} catch {
print(error)
}

关于swift - 从抛出函数到非抛出函数的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52970686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com