2011-12-13 4 views
0

Я пытаюсь распаковать некоторые данные, которые я получаю, которые сжимаются с помощью zlib, но Im получает предупреждение в моем коде, что я не уверен, как исправить.ASIHTTPRequest zlib декомпрессии

- (void)requestFinished:(ASIHTTPRequest *)request 
{ 

    responseData = [request responseData]; //Pass compressed data from server over to NSData variable might use to check size 
    NSData *uncompressedResponseData = [[NSData alloc] init]; 
    uncompressedResponseData = [[request responseData] zlibInflate]; //error here 

    //Is this where I have to think about decompression? or do I pass this data out to another method? 
} 

Ошибка гласит

Receiver type 'NSData' for instance message dose not declare a method with selector 'zlibInflate' 

Любая помощь будет оценена

ответ

1

Проблема заключается в том, что вы вызываете метод, zlibInflate на объект, который не поддерживает этот метод : NSData представляет некоторые произвольные данные и ничего не знает о распаковывании данных.

Вы действительно хотите попытаться сдуть данные, которые получаете в любом случае? Разве ASIHTTPRequest не обрабатывает раздувание (если сервер возвратил данные gzip'd)?

Что происходит, если вы просто лечите NSData, вы возвращаетесь, как будто он уже завышен?

Также см. Раздел changelog, в частности раздел под названием «Дезинформация gzip на лету».

+0

да, я думаю, что мне просто нужно пойти с gzip, потому что я не продвигаюсь по zlib. Я просто возвращаю случайный набор чисел без обработки данных. –

+0

Просто интересно, поддерживает ли zlib «на лету»? –

+0

Является ли сервер, который вы извлекаете данные, с определенным сжатием данных с помощью zlib? Если да, попробовали ли вы разжимать данные, которые вы возвращаете с помощью библиотеки zlib? – occulus

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