4

我在使用 Codable 协议同时符合 2 个协议时遇到了一些麻烦。

我的理解是,即使我使用了自定义对象,只要该对象成功符合 Codable,那么任何引用的对象也可以符合。

我有以下代码,但看不到为什么会出现错误:

import UIKit
import Foundation

protocol PromotionProtocol: Codable {
    var promotionType: Int? { get }
    var promotionCode: String? { get }
    var fileName: String? { get }
    var facetDescription: String? { get }
    var promoDescription: String? { get }
}

class Promotion: PromotionProtocol {
    var promotionType: Int?
    var promotionCode: String?
    var fileName: String?
    var facetDescription: String?
    var promoDescription: String?
}

protocol PromotionInfoProtocol: Codable {
    var cornerPromotion: PromotionProtocol? { get }
    var mainPromotion: PromotionProtocol? { get }
    var isTopFive: Bool? { get }
}

class PromoInfo: PromotionInfoProtocol {
    var cornerPromotion: PromotionProtocol?
    var mainPromotion: PromotionProtocol?
    var isTopFive: Bool?
}

'PromotionProtocol' 中的所有内容都是 String 或 Int,所以这很好。但是我得到了 Class Promotion 不符合 Encodable 和 Decodable 的错误。

4

0 回答 0