Сделать тип массива из типа - PullRequest
0 голосов
/ 04 мая 2018

Я получаю много данных с моего сервера.

Для сериализации я использую ModelMapper . У меня много Mappable объектов, поэтому мне нужна функция, которая могла бы отображать любые виды сопоставляемых данных. Как то так:

func serializeData(of type: Mappable.Type) -> [Mappable]? {
     return try? response?.map(to: [type].self)
}

Моя проблема в том, что map(:) метод требует [Mappable].Type в качестве ввода. [type].self однако [Mappable.Type]. Я заблудился здесь. Пожалуйста, помогите

1 Ответ

0 голосов
/ 04 мая 2018

Передача типа как foo.Type - это очень объективный шаблон .

В Swift я бы предпочел универсальное решение, что-то вроде

func serializeData<T : Mappable>() -> [T]? {
     return try? response?.map(to: [T].self)
}

или еще быстрее

func serializeData<T : Mappable>() throws -> [T] {
     return try response?.map(to: [T].self) ?? []
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...