こんにちはthereover stackoverflowers。私は、安全なトランスポートのためのラッパーを実装しており、私はC - > Swiftの構文のいくつかに固執しています。NSDataをUnsafeMutablePointerにコピーします。<Void>
func sslReadCallback(connection: SSLConnectionRef,
data: UnsafeMutablePointer<Void>,
var dataLength: UnsafeMutablePointer<Int>) -> OSStatus
{
//let bytesRequested = dataLength.memory
let transportWrapper:SecureTransportWrapper = UnsafePointer(connection).memory
let bytesRead:NSData = transportWrapper.readFromConnectionFunc(transportWrapper.connection)
dataLength = UnsafeMutablePointer<Int>.alloc(1)
dataLength.initialize(bytesRead.length)
if (bytesRead.length == 0)
{
return OSStatus(errSSLClosedGraceful)
}
else
{
data.alloc(sizeof(bytesRead.length)) //<----compile error here
return noErr
}
}
私はコンパイルエラーの場所をマークしました。私は間違いのためにそれを責めません、私はここで一種の推測でした:P。 NSDataをデータにコピーしようとしています:UnsafeMutablePointer。それ、どうやったら出来るの?
コンパイルエラー:
/Users/*/SecureTransportWrapper.swift:108:9: Static member 'alloc' cannot be used on instance of type 'UnsafeMutablePointer' (aka 'UnsafeMutablePointer<()>')
おかげでトン!
================
アップデート:ここではsslReadCallbackが行うことになっているもののためのAPIドキュメントです:hereから
connection: A connection reference.
data: On return, your callback should overwrite the memory at this location with the data read from the connection.
dataLength: On input, a pointer to an integer representing the length of the data in bytes. On return, your callback should overwrite that integer with the number of bytes actually transferred.
抜粋
OKです。それとも、余分な問題はありますか? – hnh
いいえ、あなたの答えがドキュメントに一致する限り!ありがとうございます - 私はあなたのものを正しいものとしてマークします。 –