Я использую AlamofireImage для отображения изображений в UITableViewCell
typealias boolAndAnyCompletion = (_ success: Bool, _ value: Any?) -> Void
class ImageHelper {
func fetchImage(url:String, completion: @escaping boolAndAnyCompletion) {
Alamofire.request(url).responseImage { response in
if let image = response.result.value {
completion(true, image)
} else {
completion(false, "No image")
}
}
}
}
Это в основном работает нормально.Я беру URL-адрес из объекта JSON и попытался получить изображение по URL-адресу.В основном это работает нормально и либо возвращает изображение, как ожидалось, либо завершается ошибкой, если строка URL-адреса 404 или иным образом недопустима.
Однако сегодня я начал получать сбой моего приложения с помощью
libc ++ abi.dylib: завершается с невостребованным исключением типа NSException
Я сузил это до описанного выше метода, где мой JSON-ответ давал мне URL-адрес по ошибке, который не указывал на изображение.
если, если URL-адрес, который я получил для изображения, был "https://bbc.co.uk/news/", то это вызывает сбой. Однако, если я ищу изображение в" https://www.google.co.uk/maps/", которое завершается с ошибкой, как ожидалось, без сбояи обрабатывается с помощью обработки ошибок.
Я знаю, что наилучшее решение заключается в том, чтобы в JSON помещались только правильные URL-адреса изображений, но при этом имело место, что люди делают это, и ошибки могут произойти.Итак, есть ли причина, по которой один из них «правильно провалится», когда другой зависал в моем приложении?Как я могу предотвратить этот сбой на некоторых недействительных URL?