2016-09-11 1 views

Antwort

1

Wenn Sie mehrere Werte für UnsafeMutablePointer<T> Parameter übergeben müssen, müssen Sie eine Variable des Typs [T] (aka Array<T>) deklarieren und übergeben Sie es als ein Inout-Argument. In Ihrem Fall ist TUnsafeMutablePointer<Float>.

Also, wenn Sie mit [Float] starten möchten, können Sie so etwas schreiben müssen:

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) 
    } 
} 
Verwandte Themen