Я пытаюсь реализовать быстрый мост в библиотеках C SecureTransport. Я думаю: «Я могу передать что-либо как соединение, пока я знаю, как читать данные из него в моих реализациях sslReadCallback/sslWriteCallback. Это предположение, с которым я работаю. Это, кажется, тот случай, когда я рассматриваю определение SSLConnectionRef:Как преобразовать мой класс swift в UnsafePointer, как __bridge в объекте-c
/* Opaque reference to an I/O connection (socket, endpoint, etc.) */
public typealias SSLConnectionRef = UnsafePointer<Void>
Так что я просто нужно, чтобы превратить свой класс в UnsafePointer. К сожалению, компилятор мне не нравится. Может ли кто-нибудь дать мне советы?
func startSSLProcess()
{
self.sslContext = SSLCreateContext(kCFAllocatorDefault, SSLProtocolSide.ClientSide, SSLConnectionType.StreamType)
if let sslContext = self.sslContext
{
SSLSetIOFuncs(sslContext, sslReadCallback, sslWriteCallback)
SSLSetConnection(sslContext, UnsafePointer(self)) // <-- error
SSLSetSessionOption(sslContext, SSLSessionOption.BreakOnClientAuth, true)
SSLHandshake(sslContext)
}
}
В GCDAsyncSocket, он делает это:
status = SSLSetConnection(sslContext, (__bridge SSLConnectionRef)self);
и
SubZeroGCDAsyncSocket *asyncSocket = (__bridge SubZeroGCDAsyncSocket *)connection;
.. разворачивать. Каков быстрый эквивалент этого?
Большое спасибо!