代码之家  ›  专栏  ›  技术社区  ›  StripyTiger

Swift可解码类不符合

  •  0
  • StripyTiger  · 技术社区  · 4 年前

    我在此类上收到一个错误:类型“VoucherCode”不符合协议“Decodable”

    我有完全相同的语法在另一个项目没有错误,这是来自一个教程。

    如果没有发布的行,类就可以工作并从相关的json中解码。

    import Foundation
    
    class VoucherCode: Decodable, Identifiable, ObservableObject {
    
    @Published var logoData: Data?
    
    var id:UUID?
    var title: String?
    var voucherCode: String?
    var details: String?
    var logo: String?
    var url: String?
    var termsAndConditions: String?
    var highlight: String?
    var whoFor:[String]?
    
    
    
    func getLogoData() {
        guard logo != nil else {
            return
        }
        
        if let url = URL(string: logo!) {
            let session = URLSession.shared
            let dataTask = session.dataTask(with: url) { (data, response, error) in
                if error == nil {
                    DispatchQueue.main.async {
                    self.logoData = data!
                    }
                }
            }
            
            dataTask.resume()
        }
    }
    }
    

    一个类似的类(它的工作)从一个CodeWithChris教训。没有错误,它工作正常。

    a working class

    1 回复  |  直到 4 年前
        1
  •  1
  •   workingdog support Ukraine    4 年前

    private enum CodingKeys: String, CodingKey {
        case id, title, voucherCode, details, logo, url, termsAndConditions, highlight, whoFor
    }