Мой сервер возвращает массив информации о фотографиях в формате JSON, например:
"pics":[{"ID":182,"ID_member":39,"fn":"b69ea6f6c88b58c67a331aa3c5eaff81.jpg"}, ...]
У меня есть функция struct init, созданная для обработки одного массива необработанных фотографий json (из типа [String: Any]):
init?(fromRaw _img:[String:Any]?)
{
guard
let img = _img,
let id = img["ID"] as? Int,
let idm = img["ID_member"] as? Int,
let fn = img["fn"] as? String
else
{
OOTLog.info("Warning : unable to init from photo raw array")
return nil ;
}
self.id = id
self.idMembre = idm
self.fileName = fn
}
Мой вопрос: допустим, у нас есть json с сервера (типа [[String: Any]], массив из n необработанных фотографий), есть ли способ «перегрузить» as? [Photo]
с моим init?(fromRaw:)
внутри Структура фото, чтобы мы могли просто кодировать:
guard let arrayPhoto = jsonRaw as? [Photo] else ..
Вместо:
guard let arrayPhotoRaw = jsonRaw as [[String:Any]] else ..
let photoArray:[Photo] = []
for p in jsonRaw {
guard let p = Photo(fromRaw:p) else { continue }
photoArray.append(p)
}