Как подтвердить Codable протокол в структуре, которые имеют объект NSError? - PullRequest
1 голос
/ 12 апреля 2019

Я хочу сохранить объект быстрой структуры в UserDefaults , для этого мне нужно подтвердить Кодируемый протокол . Я пытаюсь таким образом, но получаю некоторые ошибки -:

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)
    }

}

Снимок экрана с кодом ошибки enter image description here

...