2016-09-11 18 views
1

AccelerateフレームワークvDSP_biquadm()のSwiftシグネチャには、パラメータタイプがUnsafeMutablePointer<UnsafePointer<Float>>およびUnsafeMutablePointer<UnsafeMutablePointer<Float>>で含まれています。SwiftのUnsafeMutablePointer <UnsafeMutablePointer <Float>>パラメータ3

スウィフト3でこのような型を宣言して作成するにはどうすればいいでしょうか?そして、これらのポインタ配列に、タイプ[Float]のいくつかのSwift配列への参照を埋めます。

答えて

1

あなたはUnsafeMutablePointer<T>パラメータに対して複数の値を渡す必要がある場合は、あなたがタイプ[T](別名Array<T>)の変数を宣言およびINOUT引数として渡す必要があります。あなたの場合TUnsafeMutablePointer<Float>です。

let input: [Float] = [/*...*/] 
var output: [Float] = Array(repeating: 0, count: outputTotalSize) 
input.withUnsafeBufferPointer {inBuf in 
    let inputPtr = inBuf.baseAddress! 
    output.withUnsafeMutableBufferPointer {outBuf in 
     let outputPtr = outBuf.baseAddress! 
     var pInputs: [UnsafePointer<Float>] = [inputPtr,/*...*/] 
     var pOutputs: [UnsafeMutablePointer<Float>] = [outputPtr/*...*/] 
     vDSP_biquadm(setup, &pInputs, inStride, &pOutputs, outStride, length) 
    } 
} 
:あなたは [Float]を開始したい場合は

ので、あなたはこのような何かを書くために必要があるかもしれません

関連する問題