-1

私はswiftを初めて使用し、音声波を視覚化する必要があるプロジェクトに取り組んでいます! 画面に波をプロットする EZAudio pod を使用しています 関数 UpdatePlot が使用され、パラメータで UnsafeMutablePoiter> が渡されます 各 UnUnsafeMutablePointer の最大値でプロット上の最大波長を見つけたい

buffer[0]//with a bufferSize UInt32

その buffer[0] 配列の最大値を見つけたい!

助けてください!!!追伸:よろしくお願いします

4

2 に答える 2

0

配列バッファ[]

スウィフト 3:

buffer.max()

スウィフト 2:

buffer.maxElement()
于 2016-07-24T20:43:41.093 に答える
0

次の 2 行は非常に紛らわしいです。

buffer[0]//with a bufferSize UInt32

その buffer[0] 配列の最大値を見つけたい!

UnsafeMutablePointer<Float>bufferそれ自体、またははどれbuffer[0]ですか? bufferスイフトですかArray

bufferのタイプだと思いUnsafeMutablePointer<Float>ます。

手動:

func myMax(buf: UnsafePointer<Float>, count: UInt32) -> Float? {
    guard case let bufCount = Int(count) where count > 0 else {return nil}
    var max = -Float.infinity
    for i in 0..<bufCount {
        if buf[i] > max {
            max = buf[i]
        }
    }
    return max
}

次のように使用します。

if let maxValue = myMax(buffer, count: bufferSize) {
    //Use the maximum value
    print(maxValue)
} else {
    //No maximum value when empty
    print("empty")
}

Swift Library を利用したい場合は、次のように記述できますmyMax

func myMax(buf: UnsafePointer<Float>, count: UInt32) -> Float? {
    return UnsafeBufferPointer(start: buf, count: Int(count)).maxElement()
}
于 2016-07-24T21:23:40.923 に答える