Como usar o tipo de lista com codificável? (RealmSwift)
O problema é que o tipo de lista não está em conformidade com Codable, a classe abaixo não pode ser inserida no Realm.
por exemplo,
class Book: Codable {
var name: String = ""
var author: String = ""
var tags = [String]()
}
Considere que a classe acima está em conformidade com Codable, se armazenar esta classe no Realm, ela precisará usarList<Object>
digite em vez de[String]
class Book: Object, Codable {
@objc dynamic var name: String = ""
@objc dynamic var author: String = ""
var tags = List<Tag>()
required convenience init(from decoder: Decoder) throws {
self.init()
let container = try decoder.container(keyedBy: CodingKeys.self)
name = try container.decode(String.self, forKey: .name)
author = try container.decode(String.self, forKey: .author)
tags = try container.decode(List<Tag>.self, forKey: .tags) // this is problem.
}
}
class Tag: Object, Codable {
@objc dynamic var string: String = ""
required convenience init(from decoder: Decoder) throws {
self.init()
let container = try decoder.container(keyedBy: CodingKeys.self)
string = try container.decode(String.self, forKey: .string)
}
}
Para estar em conformidade com Codable, ele deve ser implementadoDecodable
protocolo. (required convenience init(from decoder: Decoder) throws
)
Mas,List
tipo não está em conformidade comCodable
(Decodable
), é impossível usar Codable se a classe tiverList
tipo.
Como resolver esse problema?
Obrigado,