問題点リストタイプがCodableに準拠していません。以下のクラスはレルムに挿入できません。 Codableでリストタイプを使用するには? (RealmSwift)
class Book: Codable {
var name: String = ""
var author: String = ""
var tags = [String]()
}
例えば
、 は、レルムに格納このクラスは、それがコード可能に適合する代わり[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)
}
}
のList<Object>
タイプを使用する必要がある場合、上記クラスは、コード可能に準拠検討しますそれはDecodable
プロトコルを実装する必要があります。 (required convenience init(from decoder: Decoder) throws
)
しかし、List
タイプはCodable
(Decodable
)に準拠していない、クラスがList
タイプを持っている場合はコード可能なを使用することは不可能です。
この問題を解決するにはどうすればよいですか?
ありがとう、
はそれがCodable' 'に準拠するためにリストに拡張子を書く:JSONレスポンス、モデル& URLSessionでより多くの詳細については
。 –