J'ai une URL et je veux download l'image via une fonction de return, mais je ne peux pas l'get pour coopérer correctement, voici ma fonction:
func getTabImage(url: URL) -> UIImage { Alamofire.request(url) .responseImage { response in if let image = response.result.value { return image } else { print("Failed to get image") } } }
Je passe dans l'URL, et je veux un UIImage returnné de la réponse alamofire.
Mais je reçois
Valeur de return non-nulle inattendue dans la fonction d'annulation
- Vérification de plusieurs réponses asynchronouss d'Alamofire et Swift
- Envoyer des parameters POST avec MultipartFormData à l'aide d'Alamofire, dans iOS Swift
- POST request avec une string simple dans le corps avec Alamofire
- Rejet du magasin d'applications IPv6
- Comment parsingr la réponse JSON de l'API Alamofire dans Swift?
pour la déclaration de return.
Comment puis-je y parvenir correctement?
Vous pouvez utiliser la fonction ci-dessous pour download l'image:
func getImage(_ url:Ssortingng,handler: @escaping (UIImage?)->Void) { print(url) Alamofire.request(url, method: .get).responseImage { response in if let data = response.result.value { handler(data) } else { handler(nil) } } }
Les usages
getImage("http://") { (image) in if image != nil { print(image) } }
Ou
Si vous voulez définir l'image sur UIImageView
utilisez l'extension de AlamofireImage .
if let imageURL = URL(ssortingng: "http://"), let placeholder = UIImage(named: "default") { imageView.af_setImage(withURL: imageURL, placeholderImage: placeholder) //set image automatically when download compelete. }