次の 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()
}