如何在具有NSError对象的结构中确认可编码协议?

时间:2019-04-12 12:58:27

标签: swift nsuserdefaults codable

我想在 UserDefaults 中保存快速结构对象,因为我需要确认 Codable协议。我正在尝试这种方式,但是遇到了一些错误-:

1)没有“解码”候选项产生预期的上下文结果类型“ NSError”

2)没有“解码”候选词产生预期的上下文结果类型“ NSError”

如何解决这个问题?

import Foundation

struct FailedImage: Codable {

    let url: String
    var downloadAttempt: Int
    var error: NSError

    enum CodingKeys:String,CodingKey
    {
        case error
    }

    init(from decoder: Decoder) throws {
        let values = try decoder.container(keyedBy: CodingKeys.self)
        error = try values.decode(NSError.self, forKey: .error)
    }

    func encode(to encoder: Encoder) throws {
        var container = encoder.container(keyedBy: CodingKeys.self)
        try container.encode(error, forKey: .error)
    }

}

有错误的代码的屏幕截图 MDN specs

0 个答案:

没有答案