我在使用 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 的错误。