diff --git a/MVMCore/MVMCore/Models/Model/ModelRegistry.swift b/MVMCore/MVMCore/Models/Model/ModelRegistry.swift index 3e3fc3d..2a3ebb2 100644 --- a/MVMCore/MVMCore/Models/Model/ModelRegistry.swift +++ b/MVMCore/MVMCore/Models/Model/ModelRegistry.swift @@ -45,10 +45,14 @@ extension KeyedDecodingContainer where Key: CodingKey { //MARK: - DecodeIfPresent public func decodeIfPresent(codingKey: KeyedDecodingContainer.Key, typeCodingKey: C) throws -> T? { - //get the type string - let meta = try self.nestedContainer(keyedBy: C.self, forKey: codingKey) - guard let type = try meta.decodeIfPresent(String.self, forKey: typeCodingKey) else { + var me: KeyedDecodingContainer? + do { + me = try self.nestedContainer(keyedBy: C.self, forKey: codingKey) + } catch { + return nil + } + guard let type = try me?.decodeIfPresent(String.self, forKey: typeCodingKey) else { return nil }