SwiftHttp + JSON解码器
Posted
技术标签:
【中文标题】SwiftHttp + JSON解码器【英文标题】:SwiftHttp + JSONDecoder 【发布时间】:2018-07-02 08:18:55 【问题描述】:我正在尝试从这样的服务器解析 json 响应
HTTP.GET(ServerPatientApi.SPLASH, parameters: nil) response in
if let error = response.error
listener.onException(error)
return;
DispatchQueue.main.async (execute:
let res = try decoder.decode(PatientSplashModel.self, from: response.data)
listener.onSplashLoaded()
)
但我收到以下错误:
从 '() throws -> ()' 类型的抛出函数到非抛出函数类型 '@convention(block) 的无效转换
在街区:
DispatchQueue.main.async (execute:
let res = try decoder.decode(PatientSplashModel.self, from: response.data)
listener.onSplashLoaded()
)
我认为引起的错误是:
PatientSplashModel.self
如何解决这个问题?
谢谢
【问题讨论】:
显示 json 响应和PatientSplashModel
模型
请添加 JSON 示例和模型信息。
json 没问题。因为我正在为 android 使用相同的 API。错误发生在 json 之前 - 编译状态
【参考方案1】:
该错误有点误导,您必须将try
语句包装在do catch
块中
DispatchQueue.main.async
do
let res = try decoder.decode(PatientSplashModel.self, from: response.data)
listener.onSplashLoaded()
catch print(error)
【讨论】:
现在我收到以下错误:在闭包中隐式使用“自我”;使用“自我”。使捕获语义明确 在闭包中隐式使用'self';使用“自我”。使捕获语义显式通过将更改解码器添加到 self.decoder 来修复错误以上是关于SwiftHttp + JSON解码器的主要内容,如果未能解决你的问题,请参考以下文章