gpt4 book ai didi

objective-c - 在 iPhone 上膨胀 gzip 字节

转载 作者:行者123 更新时间:2023-11-29 04:49:35 25 4
gpt4 key购买 nike

我正在尝试在 iOS 5.0 上膨胀 gzipped 字节缓冲区。我正在使用 CocoaDev 中找到的 NSData 类别.但是,每次我在 NSData 对象上调用 gzipInflate 时,它​​都会返回“nil”。

我尝试链接到 libz,为模拟器和设备构建,并尝试干净的构建,但没有成功。

NSData 对象包含有效的 gzip 压缩数据。

如有任何帮助,我们将不胜感激。

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:这个问题只是因为我误读了网络协议(protocol)而引起的。我只需在尝试解压缩之前合并流中的所有数据即可。

最佳答案

我看不到你所有的代码 - 所以这有点像在黑暗中刺伤 - 但看起来你正在读入 uselessArray - 但你正在附加来自 appendArray...

应该这样:

uselessArray[0] = [self readByte]; // neccessary, because [self readByte] returns a uint8_t.
[tempdata appendBytes:appendArray length:1];

是这样的:

uselessArray[0] = [self readByte]; // neccessary, because [self readByte] returns a uint8_t.
[tempdata appendBytes:uselessArray length:1];

?

关于objective-c - 在 iPhone 上膨胀 gzip 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com