Pregunta

Soy consciente de que esta pregunta se ha hecho varias veces, pero no pude encontrar una respuesta definitiva que se adaptara mejor a mi situación.

Quiero la posibilidad de que el usuario seleccione una imagen de la biblioteca y luego esa imagen se convierta a un tipo NSData. Luego tengo el requisito de llamar a un servicio web .NET C # a través de HTTP get, así que idealmente necesito que la cadena resultante esté codificada en UTF8.

Esto es lo que tengo hasta ahora:

NSData *dataObj = UIImageJPEGRepresentation(selectedImage, 1.0);
    [picker dismissModalViewControllerAnimated:YES];
    NSString *content =  [[NSString alloc] initWithData:dataObj encoding:NSUTF8StringEncoding];
    NSLog(@"%@", content);

La instrucción NSLog simplemente produce resultados como:

2009-11-29 14:13:33.937 TestUpload2[5735:207] (null)

Obviamente, esto no es lo que esperaba lograr, por lo que cualquier ayuda sería genial.

Saludos cordiales

¿Fue útil?

Solución

No puede crear una cadena codificada UTF-8 a partir de cualquier información binaria arbitraria: los datos deben estar codificados en UTF-8, y los datos de su imagen JPEG obviamente no lo son. Sus datos binarios no representan una cadena, por lo que no puede crear directamente una cadena a partir de ella - - [NSString initWithData: encoding:] falla apropiadamente en su caso.

Suponiendo que está usando NSURLConnection (aunque una declaración similar debería ser cierta para otros métodos), construirá su NSMutableURLRequest y usará -setHTTPBody: al cual necesita pasar un objeto NSData. No entiendo por qué usaría un método GET aquí, ya que parece que va a cargar estos datos de imagen en su servicio web; debería usar POST.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top