【发布时间】:2020-05-16 23:39:44
【问题描述】:
我正在使用 swift 的 JSONDecoder 来解码大约 1mb 的 JSON 数据。我的 JSON 有一堆嵌套对象。 我正在使用 init(from decoder:) 解码我的 JSON 数据。问题在于,仅在 API 调用返回成功响应后,解码 JSON 大约需要 10-15 秒。为什么会发生这种情况(我的数据量不是很大)? 另外,我怎样才能减少这个时间?
我正在 iPhone 6 和 Xcode 模拟器上进行测试。 API 调用大约需要 1-2 秒来获取 JSON。
我正在使用Moya 这是我的 api 调用示例:
API.provider.request(API.getDetails(id: courseID), completion: { [weak self] result in
switch result {
case .success(let response):
do {
var results = try JSONDecoder().decode(MiniDetailApiResponse.self, from: response.data)
delegate?.success(results)
}catch{
delegate?.failure()
}
}
【问题讨论】:
-
显示你正在点击的代码或 api >?
-
是的,如果没有相关代码,这个问题是无法回答的。
-
@JoakimDanielson 我编辑了我的问题描述并添加了我的 API 调用示例。我无法分享实际的代码结构,但我希望这会有所帮助。
-
@jawadAli 我已经编辑了描述,请看一下。附言忽略该开关并非详尽无遗。这只是一个示例。
-
因为 API 调用不是问题,所以这不是很有帮助。也许您可以在结构中添加一些带有时间戳的打印语句,以尝试找出慢的部分。
标签: ios json swift iphone jsondecoder