IOS (objective-c) compress_decode_buffer() возвращает нольIOS

Программируем под IOS
Ответить
Anonymous
 IOS (objective-c) compress_decode_buffer() возвращает ноль

Сообщение Anonymous »

Я конвертирую очень большой результат JSON на своем сервере в сжатый формат, который можно распаковать в моем приложении Object C. Я бы предпочел использовать библиотеку сжатия iOS 9, если это возможно (libcompression.tbd), описанную в примере кода Apple CompressionSample/BlockCompression.c.

Я передаю сжатый результат NSData следующему методу:

Код: Выделить всё

#include "compression.h"
...

Код: Выделить всё

    - (NSData *) getDecompressedData:(NSData *) compressed {
size_t dst_buffer_size = 20000000;   //20MB
uint8_t *dst_buffer = malloc(dst_buffer_size);
uint8_t *src_buffer = malloc(compressed.length);
[compressed getBytes:src_buffer length:compressed.length];

size_t decompressedSize = compression_decode_buffer(dst_buffer, dst_buffer_size, src_buffer, compressed.length, nil, COMPRESSION_ZLIB);
NSData *decompressed = [[NSData alloc] initWithBytes:dst_buffer length:decompressedSize];
return decompressed;
}
Параметр compressed имеет длину, соответствующую журналам моего сервера, но результат compress_decode_buffer всегда равен нулю, а dst_buffer равен нулю. не модифицирован. Я не получаю никаких ошибок, и в журнале нет соответствующей информации.

Я пробовал методы сжатия/распаковки ZLIB и LZ4, а также несколько библиотек на стороне сервера, все с одним и тем же результатом.

Что я здесь делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/373 ... turns-zero
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»