gpt4 book ai didi

swift - 解码 RealmSwift 类中的可选对象列表

转载 作者:行者123 更新时间:2023-11-28 07:25:40 24 4
gpt4 key购买 nike

我正在尝试在 Realm 类中初始化 Codable 对象列表,问题是当服务器返回空列表时应用程序崩溃

这是初始化List的代码

class TicketDetails: Object, Decodable {

var working: [WorkingHour]?
var workingHours = List<WorkingHour>()

public convenience required init(from decoder: Decoder) throws {
self.init()
let container = try decoder.container(keyedBy: CodingKeys.self)
if let workingArray = try container.decodeIfPresent(Array<WorkingHour>.self, forKey: .working) {
working = workingArray
workingHours.append(objectsIn: workingArray)
} else {
working = nil
workingHours = List.init()
}
}
}

最佳答案

这里有一些奇怪的地方。

TicketDetails 被声明为 Realm 对象,但包含一个数组,它只是 Realm List 属性的副本。为什么?删除阵列。 List 需要是一个 let,并删除整个 else 子句,因为那将不起作用。

class TicketDetails: Object, Decodable 
{
let workingHours = List<WorkingHour>()

public convenience required init(from decoder: Decoder) throws {
self.init()
let container = try decoder.container(keyedBy: CodingKeys.self)
if let workingArray = try container.decodeIfPresent(Array<WorkingHour>.self, forKey: .working)
{
workingHours.append(objectsIn: workingArray)
}
}
}

关于swift - 解码 RealmSwift 类中的可选对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56682620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com