我正在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))
我该如何解决?