2013-03-12 94 views
0

我有编码的二进制文件,我转换为一个NSData对象的NSString,使用@ mattt的Godzippa类我试图用gunzip NSData的,但我得到一个错误64基:Base64编码字符串的NSData然后用gunzip

Error Domain=com.godzippa.zlib.error Code=-3 "Error inflating payload" UserInfo=0x881b0b0 {NSLocalizedDescription=Error inflating payload}

当我进一步的调查zStream.msgmsg = 0x000164de "incorrect header check"

但我有麻烦理解什么是不正确的头检查手段,我怎么能解决这个问题。如果有人能够通过理解这些问题,我会及时回答任何问题,所以我会提前预先安排好细节。

这里是我如何做,我删除了的base64字符串但是:

NSString *dataString = @"REMOVED BASE64 STRING HERE"; 

NSData *data = [NSData dataFromBase64String:dataString]; 

NSError *error = nil; 

NSData *decompressed = [data dataByGZipDecompressingDataWithError:&error]; 

if(error){ 
    NSLog(@"Error: %@", error); 
} 

回答

0

事实证明,我是想,当我需要解压缩一个gzip文件解压缩zlib的档案。具体来说,我不得不将inflateInit()更改为libz/gzip库中的inflatateInit2()方法。

1

我有不正是你寻找的(未用gunzip解压缩)一些代码。您可以在我的博客here上的GitHub here和逐行描述中找到源代码。