From cd374bfacc41730cfcef15e3fa419abfbbdd948d Mon Sep 17 00:00:00 2001 From: "Pfeil, Scott Robert" Date: Mon, 13 Apr 2020 17:19:50 -0400 Subject: [PATCH] Fix to models check --- .../MVMCore/Models/Model/ModelRegistry.swift | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/MVMCore/MVMCore/Models/Model/ModelRegistry.swift b/MVMCore/MVMCore/Models/Model/ModelRegistry.swift index b002175..f9ec58b 100644 --- a/MVMCore/MVMCore/Models/Model/ModelRegistry.swift +++ b/MVMCore/MVMCore/Models/Model/ModelRegistry.swift @@ -205,19 +205,18 @@ public extension UnkeyedDecodingContainer { // Iterate and decode each. while !containerCopy.isAtEnd { let nestedContainer = try containerCopy.nestedContainer(keyedBy: AnyCodingKey.self) - if let identifier = try nestedContainer.decodeIfPresent(String.self, forKey: typeCodingKey) { - guard let type = ModelRegistry.getType(for: identifier, with: T.self) else { - MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderErrorModelNotMapped: \(identifier)") - throw ModelRegistry.Error.decoderErrorModelNotMapped - } - // Now get the decoder to use for the type - let decoder = try self.superDecoder() - if let model = try type.init(from: decoder) as? T { - models.append(model) - } else { - MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderError: \(typeCodingKey)") - throw ModelRegistry.Error.decoderError - } + let identifier = try nestedContainer.decode(String.self, forKey: typeCodingKey) + guard let type = ModelRegistry.getType(for: identifier, with: T.self) else { + MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderErrorModelNotMapped: \(identifier)") + throw ModelRegistry.Error.decoderErrorModelNotMapped + } + // Now get the decoder to use for the type + let decoder = try self.superDecoder() + if let model = try type.init(from: decoder) as? T { + models.append(model) + } else { + MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderError: \(typeCodingKey)") + throw ModelRegistry.Error.decoderError } } return models