0

バイナリのbase64でエンコードされたNSStringがあり、@ matttのGodzippaクラスを使用してNSDataオブジェクトに変換します。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);
}
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 に答える