/ / NSData към NSString използвайки initWithBytes: дължина: кодиране - iphone, nsstring, uiimage, nsdata

NSData към NSString с помощта на initWithBytes: дължина: кодиране - iphone, nsstring, uiimage, nsdata

Имам някои изображения (jpeg), които искам да изпратямоето приложение за iPhone към моята уеб услуга. За да направя това, аз използвам NSData от изображението и го конвертирам в низ, който ще бъде поставен в моя JSON.

В момента правя това:

    NSString *secondString = [[NSString alloc]  initWithBytes:[result bytes]
length:[result length]
encoding:NSUTF8StringEncoding];

Когато резултатът е от тип NSData. Въпреки това secondString изглежда нула, въпреки че дължината на резултата връща реална стойност (като 14189). Използвах този метод, тъй като резултатът е необработена информация, а не нула.

Правя ли нещо нередно? Аз използвах този код в други области и изглежда, че работи добре (но тези области, в които понастоящем го използвам включват текстови данни).

TIA.

Отговори:

2 за отговор № 1

За двоични данни, по-добре да го кодира с помощта на кодиране Base64 след това го декодира в webservice. Използвам NSData + Base64 клас изтеглени от туктова позоваване е взето и от Stackoverflow, an отговор направено от @Ken (Благодаря Кен!).


2 за отговор № 2

Не преобразувате данните в низ. Опитвате се да го тълкувате като кодиран низ utf-8, който ще се провали, освен ако данните наистина не са кодиран низ utf-8. Най-добре е да го кодирате по някакъв начин, може би с Base64, както предлага Мани, и след това да го декодирате отново на сървъра.