我有一个从C调用的Swift函数。函数在C中定义如下:
int (*load_session_func)(
signal_buffer **record,
const signal_protocol_address *address,
void *user_data);
Swift的等价物如下:
public var load_session_func: (@convention(c)
record: (UnsafeMutablePointer<OpaquePointer?>?,
address: UnsafePointer<signal_protocol_address>?,
userData: UnsafeMutableRawPointer?)
-> Int32)!
所以我需要在Swift中实现load_session_func(),并将一些Data字节放入 record 参数中。如何将Data中的字节放入OpaquePointer?我不能使用withUnsafeBytes,因为C代码将在我的函数返回后使用字节。