Domanda

Sono consapevole che questa domanda è stata posta più volte, ma non sono riuscito a trovare una risposta definitiva che si adattasse meglio alla mia situazione.

Voglio che l'utente possa selezionare un'immagine dalla libreria, quindi quell'immagine viene convertita in un tipo NSData. Ho quindi l'obbligo di chiamare un webservice .NET C # tramite HTTP ottenere così idealmente che ho bisogno che la stringa risultante sia codificata UTF8.

Questo è quello che ho finora:

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

L'istruzione NSLog produce semplicemente output come:

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

Ovviamente questo non è ciò che speravo di ottenere, quindi qualsiasi aiuto sarebbe fantastico.

Cordiali saluti

È stato utile?

Soluzione

Non puoi creare una stringa codificata UTF-8 partendo da qualsiasi dato binario arbitrario - i dati devono essere effettivamente codificati UTF-8, e ovviamente i dati per l'immagine JPEG non lo sono. I tuoi dati binari non rappresentano una stringa, quindi non puoi creare direttamente una stringa da essa - - [NSString initWithData: encoding:] non riesce correttamente nel tuo caso.

Supponendo che tu stia usando NSURLConnection (sebbene un'affermazione simile dovrebbe essere vera per altri metodi), costruirai il tuo NSMutableURLRequest e userai -setHTTPBody: al quale devi passare un oggetto NSData. Non capisco perché dovresti utilizzare un metodo GET qui poiché sembra che stai caricando questi dati di immagine sul tuo servizio web - dovresti usare POST.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top