diff --git a/MVMCore/MVMCore/Models/Model/ModelRegistry.swift b/MVMCore/MVMCore/Models/Model/ModelRegistry.swift index b0246fe..a141ed4 100644 --- a/MVMCore/MVMCore/Models/Model/ModelRegistry.swift +++ b/MVMCore/MVMCore/Models/Model/ModelRegistry.swift @@ -65,13 +65,17 @@ extension KeyedDecodingContainer where Key: CodingKey { public func decodeArrayIfPresent(codingKey: KeyedDecodingContainer.Key, typeCodingKey: C) throws -> [Model]? { - - var unkeyedContainer = try nestedUnkeyedContainer(forKey: codingKey) + var unkeyedContainer: UnkeyedDecodingContainer? + do { + unkeyedContainer = try nestedUnkeyedContainer(forKey: codingKey) + } catch { + return nil + } var otherUnkeyedContainer = try nestedUnkeyedContainer(forKey: codingKey) var attributes = [Model.Type]() - while !unkeyedContainer.isAtEnd { + while !unkeyedContainer!.isAtEnd { - let meta = try unkeyedContainer.nestedContainer(keyedBy: C.self) + let meta = try unkeyedContainer!.nestedContainer(keyedBy: C.self) guard let type = try meta.decodeIfPresent(String.self, forKey: typeCodingKey) else { return nil }