I've tried it that way
public class CxxSideInterface
{
var cxx = interop_test.CxxToSwiftInterfaceBridge.Instance().pointee
var callback: SwiftSideInterfaceBridge? = nil
var ptr: OpaquePointer? = nil
static func Instance() -> CxxSideInterface
{
let instance = CxxSideInterface()
return instance
}
func Call() -> String
{
return String( cxx.Call() )
}
func RegisterCallback( cb: SwiftSideInterface )
{
callback = SwiftSideInterfaceBridge(bridge: cb)
ptr = OpaquePointer( Unmanaged.passUnretained(callback!).toOpaque() )
cxx.RegisterCallback(ptr!)
}
}
And I'm getting EXC_BAD_ACCESS when I try to use stored pointer on C++ side. Am I doing something wrong? Never worked with Swift OpaquePointers before.