Задать вопрос
@redcircle

Как сделать JSON из Encodable произвольного класса?

Есть функция в Swift 4:
func encode(item: Encodable) -> Data {
        return JSONEncoder().encode(item)
}


Но компилятор выдаёт ошибку
Protocol type 'Encodable' cannot conform to 'Encodable' because only concrete types can conform to protocols

Как реализовать подобный функционал, не используя конкретные классы?
  • Вопрос задан
  • 68 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@tapoton
Да, в Encoder нет метода, который бы принимал абстрактный Encodable, ему нужен конкретный тип. Добиться этого в силу своей реализации помогут дженерики.

func encode<T: Encodable>(_ item: T) throws -> Data {
    return try JSONEncoder().encode(item)
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы