Массив типа Decodable не декодируется - PullRequest
0 голосов
/ 27 сентября 2019

Если у нас есть тип Foo: Decodable, как мы можем сделать Array<Foo> декодируемым?

Должен ли я создать еще один тип Foos: Decodable?

Если да, то как это будет работать?


Я вижу проблему здесь

func exampleMethod<T:Decodable>(type: T) { }

// Argument type 'Array<Foo>.Type' does not conform to expected type 'Decodable'
exampleMethod(type: [Foo].self)

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Если Foo соответствует Decodable, то Array<Foo> должно автоматически соответствовать Decodable.Разве это не то, что вы видите в этом случае?

0 голосов
/ 27 сентября 2019

Просто используйте это:

let res = JSONDecoder().decode([Foo].self, data)

для вашего случая:

exampleMethod(type: [Foo()])

Относительно exampleMethod подписи вы должны написатьмассив.Не тип массива.

...