查看通过解码器解码的数据

时间:2018-06-13 14:04:23

标签: swift codable

我正在使用Codable的Swiftt 4项目中工作。但是,我收到以下错误:

let spans =  document.querySelectorAll('.avia_textblock p span');

for( i=spans.length-1; i>= spans.length-2; i-- ){
  spans[i].parentNode.removeChild(spans[i]);
}

现在我想知道的是如何最好地调试它。有可能看到Codable试图在我的模型中填充什么数据吗?特别是因为在这种情况下使用相当先进的嵌套,我在这里重新认识它是一个真正的救星......

谢谢:)

1 个答案:

答案 0 :(得分:2)

Codable错误非常具有描述性。对于调试,请使用此catch块来获取详细的错误消息:

} catch DecodingError.dataCorrupted(let context) {
    print(context)
} catch DecodingError.keyNotFound(let key, let context) {
    print("Key '\(key)' not found:", context.debugDescription)
    print("codingPath:", context.codingPath)
} catch DecodingError.valueNotFound(let value, let context) {
    print("Value '\(value)' not found:", context.debugDescription)
    print("codingPath:", context.codingPath)
} catch DecodingError.typeMismatch(let type, let context)  {
    print("Type '\(type)' mismatch:", context.debugDescription)
    print("codingPath:", context.codingPath)
} catch {
    print("error: ", error)
}

debugDescriptioncodingPath都会告诉您到底出了什么问题以及在哪里。