BN_hex2bn()
ожидает адрес BIGNUM *
в качестве первого аргумента, в Swift это адрес переменной UnsafeMutablePointer<BIGNUM>?
. Вы «только» должны объявить эту переменную (дополнительные параметры автоматически инициализируются с nil
) и передать ее в качестве входного аргумента с &
в функцию. Пример:
let hexString = "123456789abcdef"
var bn: UnsafeMutablePointer<BIGNUM>?
BN_hex2bn(&bn, hexString)
// Do something with `bn` ...
// Eventually free the memory:
BN_free(bn)
Если вы поместите его в класс Swift, то освобождение ресурсов можно выполнить методом deinit
:
class BN {
var bn: UnsafeMutablePointer<BIGNUM>?
init(hexString: String) {
BN_hex2bn(&bn, hexString)
}
deinit {
if let bn = bn { BN_free(bn) }
}
}