【发布时间】:2012-01-30 19:34:37
【问题描述】:
我正在尝试在 iOS 5.0 上对 gzipped 字节缓冲区进行膨胀。 我正在使用CocoaDev 中的 NSData 类别。 但是,每次我在 NSData 对象上调用 gzipInflate 时,它都会返回“nil”。
我已经尝试链接到 libz,为模拟器和设备构建,并尝试了一个干净的构建,但没有一个成功。
NSData 对象包含有效的压缩数据。
任何帮助将不胜感激。
EDIT1:这是我正在使用的代码。
uint8_t appendArray[1];
for (int i=0; i != 1024; i++) {
appendArray[0] = [self readByte]; // neccessary, because [self readByte] returns a uint8_t.
[tempdata appendBytes:appendArray length:1];
}
NSData *almostdata = [tempdata gzipInflate]; // Returns nil
assert(almostdata != nil); // Fails
Tempdata 是一个 NSMutableData 对象,容量为 1024 字节。 readByte 是一种从网络流中读取一个字节的方法。 gzipInflate 方法来自here。 流中的数据在压缩时为 1024 字节长。
EDIT2:这是一个 Z_BUF_ERROR,但输出缓冲区对于字节来说已经足够大了。
EDIT3:这个问题只是因为我看错了网络协议。在尝试解压缩之前,我只需要合并流中的所有数据。
【问题讨论】:
-
我已经添加了代码。
标签: objective-c ios ios5 gzip