ben ...Swift kodlanabilir protokol ... kodlama/kod çözme NSCoding sınıfları
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)
}
}
bir Photo
aşağıdaki yapı Kodlama var ... ile başarısız
Opsiyonel UIImage uymayan yapar çünkü encodable uymadığıKodlanabilir
Kod çözme başarısız…
Anahtar
NSCoding
uygun NSObject
alt sınıf özellikleri içerir Swift nesneleri kodlamak için bir yolu var mı)) " "\ görüntüyü" tuşuna \ kodlama için opsiyonel isteğe bağlı olmayan tip bekliyor ne zaman bulunamadı (UIImage
, UIColor
, vb.)?
Sen ve Data' 'dan arşivden çıkarma/nesneleri arşivlemek özel kodlama/kod çözme kodu yazmak zorunda ... kodlama/kod çözme
Data
yönünde beni işaret @vadian için. Lütfen [Özel Türleri Kodlama ve Kod Çözme] 'nı okuyun (https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types) – vadian