Проблема в том, что значения в Dictionary
равны Tuple
с, а кортежи не соответствуют Codable
. К сожалению, вы даже не можете расширить Tuple
, так как это неноминальные типы, поэтому вам придется либо переключиться на другой тип данных, либо реализовать методы кодирования и декодирования самостоятельно.
Я бы предложил использовать пользовательский struct
вместо кортежа, что-то вроде
struct TransactionAmount<Currency>: Codable {
let amount: Money<Currency>
let setByUser: Bool
}
А потом в вашем Transaction
классе,
var splitTransaction: [String:TransactionAmount<GBP>]? {...