Fix to models check

This commit is contained in:
Pfeil, Scott Robert 2020-04-13 17:19:50 -04:00
parent 0d0a6c4a81
commit cd374bfacc

View File

@ -205,19 +205,18 @@ public extension UnkeyedDecodingContainer {
// Iterate and decode each. // Iterate and decode each.
while !containerCopy.isAtEnd { while !containerCopy.isAtEnd {
let nestedContainer = try containerCopy.nestedContainer(keyedBy: AnyCodingKey.self) let nestedContainer = try containerCopy.nestedContainer(keyedBy: AnyCodingKey.self)
if let identifier = try nestedContainer.decodeIfPresent(String.self, forKey: typeCodingKey) { let identifier = try nestedContainer.decode(String.self, forKey: typeCodingKey)
guard let type = ModelRegistry.getType(for: identifier, with: T.self) else { guard let type = ModelRegistry.getType(for: identifier, with: T.self) else {
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderErrorModelNotMapped: \(identifier)") MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderErrorModelNotMapped: \(identifier)")
throw ModelRegistry.Error.decoderErrorModelNotMapped throw ModelRegistry.Error.decoderErrorModelNotMapped
} }
// Now get the decoder to use for the type // Now get the decoder to use for the type
let decoder = try self.superDecoder() let decoder = try self.superDecoder()
if let model = try type.init(from: decoder) as? T { if let model = try type.init(from: decoder) as? T {
models.append(model) models.append(model)
} else { } else {
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderError: \(typeCodingKey)") MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderError: \(typeCodingKey)")
throw ModelRegistry.Error.decoderError throw ModelRegistry.Error.decoderError
}
} }
} }
return models return models