使用Realm数据库时如何在Swift 4 Codable中处理JSON空值情况?

时间:2018-08-28 14:35:28

标签: ios swift realm codable

我正在Swift 4中使用Codable以及Realm Database for Swift。 我使用的API发送的某些字段为,如果被提及为可选,则 Codable 可以处理,我知道,现在我不能这样做是因为 @objc 注释在 RealmSwift 4 中是强制性的,并且这些字段不能为可选字段,并且必须使用一些值进行初始化。如果我尝试这样做,它会说

  

无法将属性标记为@objc,因为它的类型无法替换   在目标C中

下面是一些可编码类,它们也是领域对象类

class HUB: Object,Codable{

    @objc dynamic var hubId:String?
    @objc dynamic var lastKnownIp:String?
    @objc dynamic var lastKnownPort:Int = 0
    @objc dynamic var nodes:[Node]?

}
class Node:Object,Codable {
    @objc dynamic var appStatus:Int = 0
    @objc dynamic var apps:[NodeApp]?
}

如果上述值中的任何一个在JSON中为null,则 Codable 解码将失败并给出错误

  

valueNotFound(Swift.Int,Swift.DecodingError.Context(codingPath:   [_JSONKey(stringValue:“索引0”,intValue:0),   CodingKeys(stringValue:“ nodes”,intValue:nil),_JSONKey(stringValue:   “索引0”,intValue:0),CodingKeys(字符串值:“ appStatus”,   intValue:nil)],debugDescription:“预期的Int值,但发现为null   相反。”,underlyingError:nil))

我该如何解决?

0 个答案:

没有答案