我有以下结构......</p>
struct Photo: Codable {
let hasShadow: Bool
let image: UIImage?
enum CodingKeys: String, CodingKey {
case `self`, hasShadow, image
}
init(hasShadow: Bool, image: UIImage?) {
self.hasShadow = hasShadow
self.image = image
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
hasShadow = try container.decode(Bool.self, forKey: .hasShadow)
// This fails
image = try container.decode(UIImage?.self, forKey: .image)
}
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(hasShadow, forKey: .hasShadow)
// This also fails
try container.encode(image, forKey: .image)
}
}
编码Photo
失败...</p>
Optional 不符合 Encodable 因为 UIImage 不符合 Encodable
解码失败...</p>
期望非可选类型时未找到键 编码键可选“图像”))
NSObject
有没有办法对包含符合NSCoding
( UIImage
, UIColor
, 等)的子类属性的 Swift 对象进行编码?