Я хочу иметь возможность декодировать разные объекты, которые приходят с сервера, с разными форматами даты, и для этого я разработал этот протокол:
public protocol DateFormatProtocol{
var dateFormat : String {get}
}
public protocol CodableWithDateFormat : Codable, DateFormatProtocol{
static var dateFormat: String {get}// = "DatFormat"
}
public extension CodableWithDateFormat{
public static var dateFormat: String { return "Base date format" }
}
Поэтому, когда мне нужно, я могу переопределить свойствов каждой структуре, которая нуждается в различном формате даты, но я не хочу, чтобы каждая структура переопределяла формат даты по умолчанию, указанный в расширении протокола.Есть ли способ для меня, чтобы быть в состоянии написать это?:
struct Struct1 : CodableWithDateFormat{
var dateFormat: String { return "Overwritten Date Format" }
let prop1 : String
let prop2 : Int
}
struct Struct2 : CodableWithDateFormat{ //Type 'Struct2' does not conform to protocol 'DateFormatProtocol'
let prop1 : String
let prop2 : Int
}