如何在Swift中使用Zlib中的CRC32(Xcode 9)

5

我刚接触 Swift/Xcode ,尝试使用 crc32 函数,如此处所述,该函数提供在 zlib 的 libz.dylib 中。

我修改了代码,现在尝试:

let message1 = "some message".first?.value!.data(using: String.Encoding.utf8, allowLossyConversion: false) let crc = crc32(CLong(0), UnsafePointer<Bytef>(strcat!.bytes), UInt(message1!.length))

但是我遇到了错误:use of unresolved identifier 'crc32'

请问有人能帮我找出可能缺少的步骤,以便使用 crc32 函数吗?

谢谢!


你导入了吗? - Mark Adler
嘿@MarkAdler!是的,这是我导入libz.dylib所做的:转到Build Phases>链接二进制文件库>+>添加其他项。在文件选择窗口中按下:“CMD”+Shift+G(即转到文件夹),然后键入/usr/lib/。从/user/lib找到并添加:libz.dylib。 - Mikmac
2
我的意思是,你的代码中有“import zlib”吗? - Mark Adler
1个回答

1
在 Swift 5 中:
import zlib

let data = Data(base64Encoded: "SGF2ZSBhIG5pY2UgZGF5ISA6KQ==")!
let checksum = data.withUnsafeBytes { crc32(0, $0.bindMemory(to: Bytef.self).baseAddress, uInt(data.count)) }
print("crc32: 0x\(String(format:"%08X", checksum))")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接