2013-03-12 97 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和逐行描述中找到源代碼。