Как использовать crc32 из zlib в Swift (Xcode 9)

Я новичок в 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?

Спасибо!


person Mikmac    schedule 02.03.2018    source источник
comment
Вы делали импорт?   -  person Mark Adler    schedule 02.03.2018
comment
Привет, @MarkAdler! Да, вот что я сделал, чтобы импортировать libz.dylib: Перейдите к этапам сборки › Связать двоичный файл с библиотеками › + › Добавить другое В окне выбора файла нажмите: CMD+Shift+G (т.е. Перейти в папку) и введите /usr/ lib/ Из /user/lib найдите и добавьте: libz.dylib   -  person Mikmac    schedule 05.03.2018
comment
Я имел в виду, у вас был импорт zlib в вашем коде?   -  person Mark Adler    schedule 10.03.2018


Ответы (1)


В Свифт 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))")
person Leszek Szary    schedule 20.04.2021