ipad - que - heic to jpg windows
iPad: ImageIO:<ERROR> JPEGNo es un archivo JPEG: comienza con 0xff 0xd9 (1)
está bien, el servidor tiene algunos errores: /
el mensaje de error que cité en el título de la pregunta me está volviendo loco en mi iPad.
Estoy descargando algunos archivos Jpeg de servidores HTTP, y el uso de mi código funciona bien en el iPhone (iOS 5.0). En mi iPad (4.3) envía este mensaje de error y la imagen no se puede mostrar.
Lo que me hace preguntar es cómo lo arreglé, lo que no está claro para mí.
Así que estoy descargando el Jpeg a través de NSURLConnection (conn) y un NSMutableData (imageData):
conn = [[NSURLConnection alloc]
initWithRequest:[NSURLRequest requestWithURL:[camera getJpgUrl]
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:10]
delegate:self
startImmediately:YES];
if(conn && !imageData)
{
imageData = [[NSMutableData data] retain];
}
los métodos de delegado son:
1) obtener más datos
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[imageData appendData:data];
}
2) tener todos los datos:
-(void)connectionDidFinishLoading:(NSURLConnection *)aConnection
{
UIImage *img = [UIImage imageWithData:imageData];
[imageData setLength:0];
[conn release];
conn = nil;
if(img)
{
imageView.image=img;
}
}
Hooray sais el iphone, bienvenido grita la imagen.
En el iPad, sin embargo, tengo que liberar el objeto imageData-Object en lugar de la configuración de su longitud a 0 cuando reinicio ese método inicializando NSUrlConnection. lo reinicio para actualizaciones de imagen, etc.
Entonces el código en iPad es (solo para resumir):
-(void)connectionDidFinishLoading:(NSURLConnection *)aConnection
{
UIImage *img = [UIImage imageWithData:imageData];
[imageData release];
imagedata = [[NSMutableData data] retain];
conn release];
conn = nil;
if(img)
{
imageView.image=img;
}
}
Así que, por ahora, el manejo de imageData en mi código es el resultado de las pruebas, por lo que podría cambiarlo para que tenga un manejo elegante. Eso no es tan importante.
Pero lo que me hace preguntar es, ¿por qué setLength: 0 hace lo que debería en ios5 / iphone4, pero no en ipad? Espero que haya estropeado algo, pero aquí realmente no entiendo lo que está pasando.
Alguna idea ?
¡Gracias!