我正试着用一门课杀死两只鸟。
我想使用一些JSON数据并将其保存到领域数据库中。
{ "Colors":
[ {"Name" : "Blue"},
{"Name" : "Red"},
{"Name" : "Green"},
{"Name" : "Black"}
]
}
我已经有一个领域类,工作良好。
class Color : Object {
//RealmObject
@objc dynamic var name : String = ""
}
当我使用它的时候
import SwiftyJSON
import RealmSwift
func process(jsonData: JSON) {
for color in jsonData.arrayValue {
let c = Color()
c.name = color["Name"]
save(data: c)
}
}
func save(data: Object){
do{
try realm.write {
realm.add(data)
}
} catch {
print("Error saving data: \(error)")
}
}
Codable
class Color : Object, Codable {
//RealmObject
@objc dynamic var name : String = ""
//Codable For JSON Deserialziation
enum CodingKeys: String, CodingKey {
case name = "Name"
}
}
struct Colors: Codable {
let colors: [Color]
enum CodingKeys: String, CodingKey {
case colors = "Colors"
}
}
我想做的是对jsonData进行编码并将其保存到领域。
if let colors = try? JSONDecoder().decode(Colors.self, from: data.rawData()) {
self.save(data: colors)
}
但我似乎无法让它工作。我尝试了多种方法来获得错误:
'对象'
或者试图
for
类型“Colors”不符合协议“Sequence”