Расшифровка опционально Список объектов в классе RealmSwift - PullRequest
1 голос
/ 20 июня 2019

Я пытаюсь инициализировать Codable List объектов в классе Realm, проблема в том, что приложение вылетает, когда сервер возвращает пустой список

, это код для инициализации 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()
        }
    }
}

1 Ответ

0 голосов
/ 21 июня 2019

Несколько странностей здесь.

TicketDetails объявляется как объект Realm, но содержит массив, который является просто дубликатом свойства списка областей.Зачем?Удалить массив.Список должен быть разрешен, и удалить все предложение 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)
    }
  }
}
...