Извлечение реальной части UnsafeMutablePointer в виде Float и сохранение ее в массиве - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть эта функция

func arrayForPointer<T>(_ pointer: UnsafePointer<T>, count: Int) -> [T] {
let buffer = UnsafeBufferPointer<T>(start: pointer, count: count)
return Array(buffer)
}

и этот вызов

let arrayComplex = self.arrayForPointer(&output, count: 4)

Я хочу перечислить до arrayComplex и извлечь действительную часть в обычный массив, например

var arrayReal: [Float] = []

for item in arrayComplex {
  let myFloat = item.realp  \\ get the real part of item
  arrayReal.append(myFloat)
}

строка

let myFloat = item.realp  \\ get the real part of item

неверна.

item это UnsafeMutablePointer<Float>

Как мне это сделать, ради бога?

Спасибо.

=======================

Это output

var A = [Float](repeating:0, count:samples/2);
var B = [Float](repeating:0, count:samples/2)
var output = DSPSplitComplex(realp: &A, imagp: &B)

1 Ответ

0 голосов
/ 12 февраля 2019

Попробуйте это.

Исправьте вызов func:

let arrayComplex = arrayForPointer(output.realp, count: 4)

И затем в вашем цикле исправьте эту строку:

let myFloat = item  \\ get the real part of item
...