【问题标题】:How to check CRC32 of NSData? [duplicate]如何检查 NSData 的 CRC32? [复制]
【发布时间】:2011-07-28 08:19:08
【问题描述】:

可能重复:
Get CRC checksum of an NSData in Objective-C

我在 xcode 中找不到任何 CRC32 算法的实现。谁能帮我计算一下?

【问题讨论】:

标签: iphone crc32


【解决方案1】:

libz 有一个crc32() 函数。要将它与 NSData 一起使用,请尝试这个简单的类别:

你的标题:

@interface NSData (CRC32)
- (uint32_t)CRC32Value;
@end

你的实现:

#include "your header"

#include <zlib.h>

@implementation NSData (CRC32)
- (uint32_t)CRC32Value {
    uLong crc = crc32(0L, Z_NULL, 0);
    crc = crc32(crc, [self bytes], [self length]);
    return crc;
}
@end

【讨论】:

  • 谢谢你,乔纳森!这就是我要找的:)
  • 有没有办法为流数据做到这一点?我可以在接收数据时重复调用 crc32() 吗?我想为 NSURLConnectionDelegate 执行此操作,以校验直接流式传输到磁盘的大量下载的结果。
  • 查看crc32() 的文档。实际上,是的。
猜你喜欢
  • 2015-04-26
  • 2011-12-30
  • 1970-01-01
  • 2016-09-14
  • 2013-06-07
  • 2020-04-03
  • 2013-03-30
  • 2011-08-31
  • 1970-01-01
相关资源
最近更新 更多