iOS 9 Alamofire nunca carga imágenes

Estoy usando AlamofireImage para cargar imágenes en un ImageView en una celda tableview (en un file xib separado) El problema es que la image nunca aparece. Creo que el código es correcto y url también es válido.

Aquí está el código (muy simple):

let placeholderImage = UIImage(named: "imgNoPhoto1") if let urlImage = NSURL(string: urlString) { photoImage.af_setImageWithURL(urlImage, placeholderImage: placeholderImage) } 

¿Algunas ideas? ¿Podría ser que la celda no se está recargando? Lo he probado en iOS 8 y 9.

Espero que me ayudes! Gracias

Dependiendo de si está cancelando la request en prepareForReuse o no, es posible que se esté ejecutando un error que acabo de corregir en AlamofireImage # 55 . Estaré presionando un nuevo lanzamiento con esta solución aquí en los próximos días. Si esto es en realidad lo que está investigando, podría comentar la lógica de cancelación por ahora y eso debería solucionar su problema hasta que liberemos la solución.

Si este no es el problema con el que te encuentras, seguiré los consejos de todos los demás y asegúrate de que puedes download la image usando cURL .


Actualización n. ° 1

De acuerdo, descubrí cuál es tu problema. El server no devuelve un tipo de contenido válido que está causando que AlamofireImage no valide la image y no intentará decodificar los datos en una image. Puede encontrar esto ejecutando el siguiente command en Terminal:

 curl -H "User-Agent: iOS" -s -D - http://files.encuentra24.com/normalsq/sv/58/08/68/sv/58/08/68/5808689_5e7d99.jpg -o /dev/null 

Lo que esto hace es ejecutar curl contra la URL que proporcionó. No descarga los datos de la image, solo imprime los encabezados de respuesta. También encontré que necesita pasar el encabezado User-Agent , de lo contrario siempre obtendrá un 403. Esto es lo que se imprimirá el command curl:

 cnoon:~$ curl -H "User-Agent: iOS Example/com.alamofire.iOS-Example (1; OS Version 9.1 (Build 13B137))" -s -D - http://files.encuentra24.com/normalsq/sv/58/08/68/sv/58/08/68/5808689_5e7d99.jpg -o /dev/null HTTP/1.1 200 OK Cache-Control: max-age=2592000, public Content-Type: image/jpg Date: Fri, 11 Dec 2015 16:16:38 GMT Expires: Sun, 10 Jan 2016 16:16:38 GMT Pragma: no-cache Server: nginx/1.7.12 Set-Cookie: sessioninfo=uv491lgtjqvkmt267l1nmlbm24; path=/ Set-Cookie: esid=deleted; expires=Thu, 11-Dec-2014 16:16:37 GMT; path=/ Vary: Accept-Encoding Content-Length: 23757 

Ahora, la parte REALMENTE importante de este resultado es Content-Type: image/jpg . Eso no es realmente un encabezado de Content-Type válido. La válida es image/jpeg . Por lo tanto, AlamofireImage por defecto no validará esta respuesta y no decodificará la image.

Solución

Afortunadamente, ya tenemos soporte para esto incorporado en AlamofireImage. Puede agregar un tipo de contenido personalizado a los serializadores de respuesta de Request . Cómo lo hace es el siguiente:

 Alamofire.Request.addAcceptableImageContentTypes(["image/jpg"]) 

Esto registrará el tipo de contenido de image/jpg como un tipo de contenido aceptable con el sistema de serialization de respuesta. Después de registrarse, cualquier tipo de contenido que coincida con la image/jpg será desencryption. Para get más información sobre esto, consulte AlamofireImage # 58 .