2009-11-29 4 views
0

Я знаю, что этот вопрос задавался несколько раз, но мне не удалось найти определенный ответ, который лучше всего соответствовал моей ситуации.Преобразование NSData [UIImage] в NSString

Я хочу, чтобы пользователь мог выбрать изображение из библиотеки, а затем это изображение преобразуется в тип NSData. У меня тогда есть требование вызывать .NET C# webservice через HTTP, поэтому я хочу, чтобы результирующая строка была кодирована UTF8.

Это то, что я до сих пор:

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

Оператор NSLog просто производит вывод, как:

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

Очевидно, это разве что я надеялся достичь, так что любая помощь будет большим.

С наилучшими пожеланиями

ответ

2

Вы не можете создать UTF-8 закодированную строку из просто произвольных двоичных данных - данные должны быть на самом деле UTF-8 кодируется, и данные для JPEG изображения, очевидно, не , Ваши двоичные данные не представляют собой строку, поэтому вы не можете напрямую создать строку из нее - -[NSString initWithData:encoding:] не соответствует вашему делу.

Предполагая, что вы используете NSURLConnection (хотя аналогичный оператор должен быть правдой для других методов), вы создадите свой NSMutableURLRequest и используете -setHTTPBody:, которому необходимо передать объект NSData. Я не понимаю, почему вы используете метод GET здесь, потому что похоже, что вы собираетесь загружать эти данные изображения в свой веб-сервис - вы должны использовать POST.

Смежные вопросы