Hi everyone, In the process of familiarising myself with Encodable/Decodable protocols I was trying to apply it to the Range struct in order to persist a Range in CoreData records. However, I seem to hit the wall with it and keep getting errors. This happens in the Xcode 9.0.1 playground, not sure which swift version is used if it’s 4 or 3.x but anyways, I get “Ambiguous reference to member ‘encode(_:forKey:)’ on every encode/decode method calls.
extension Range { enum CodingKeys : String, CodingKey { case upperBound case lowerBound } } extension Range: Codable { public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(upperBound, forKey: .upperBound) try container.encode(lowerBound, forKey: .lowerBound) } public init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) self.upperBound = try values.decode(Bound.self, forKey: .upperBound) self.lowerBound = try values.decode(Bound.self, forKey: .lowerBound) } } How would one add Codable support to such a struct? I’m feeling it may require a bit of “where” clauses in extension because of the Generic aspect of this struct but I fail to make the compiler happy. Any help appreciated. Best regards, Thierry _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users