iPhone: Как встроить NSData в XML для загрузки на сервер? - PullRequest
0 голосов
/ 19 марта 2010

Я хочу передать данные на сервер и сохранить файл в базе данных в виде двоичных данных.

NSData *myData = [NSData dataWithContentsOfFile:pathDoc]; 
pathDoc = [NSString stringWithFormat:@"<size>%d</size><type>%d</type><cdate>%@</cdate><file>%c</file><fname>File</fname>",fileSizeVal,filetype,creationDate,myData];

Есть идеи по этому поводу?

Спасибо тебе, Милан

Ответы [ 3 ]

1 голос
/ 19 марта 2010

Этот код не имеет смысла.

Вы создаете объект NSData с путем к файлу, затем поворачиваетесь и переназначаете пути var строку, представляющую кусок XML. Это очень запутано и может привести к ошибкам. Не используйте переменные таким образом.

В любом случае для кодирования данных в строку вы используете NSString's:

- (id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding

Затем просто вставьте эту строку, где вы хотите.

Edit:

Привет, извините, я не знаю как использовать это - (id) initWithData: (NSData *) кодировка данных: (NSStringEncoding) кодировка в мой код.

Примерно так: (извините за форматирование, редактор Stackoverflow, похоже, мигает сегодня)

NSData *myData = [NSData dataWithContentsOfFile:pathDoc]; 
NSString *myDataString = [[NSString alloc] initWithData:myData encoding:NSUnicodeStringEncoding];
NSString *formatString = @"<size>%d</size><type>%d</type><cdate>%@</cdate><file>%c</file><fname>File</fname><data>%@</data>";
pathDoc = [NSString stringWithFormat:formatString,fileSizeVal,filetype,creationDate,myDataString];

NSUnicodeStringEncoding является одной из нескольких констант, определяющих различные кодировки строк. Смотрите ссылку на класс NSString. Какой из них вы используете, зависит от того, что ожидает ваш сервер.

Удачи.

1 голос
/ 19 марта 2010

Наиболее распространенный способ встраивания двоичных данных в документ XML - это кодирование данных в ASCII. Например, используя Base64.

0 голосов
/ 19 марта 2010

вы должны иметь возможность использовать архивирование объектов для создания сериализованного объекта, а затем отправить его на сервер.

...