0

我有一个二进制的base64编码的NSString,我使用@mattt的Godzippa类将其转换为NSData对象我试图对nsdata进行压缩,但出现错误:

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);
}
4

2 回答 2

1

我有一些代码完全符合您的要求(gunzip 不是解压缩)。你可以在 GitHub 上找到源代码,在我博客上逐行描述。

于 2013-03-15T06:45:07.020 回答
0

事实证明,当我需要解压缩 gzip 文件时,我正在尝试解压缩 zlib 存档。具体来说,我必须将其更改为libz/gzip 库中inflateInit()inflatateInit2()方法。

于 2013-03-13T06:31:26.980 回答