Swift 3 内で、入力を受け入れる C オブジェクトにデータを送信する必要がありfloat **
ます。
Swift 2 では、 a を宣言しUnsafeMutablePointer< UnsafeMutablePointer<Float32>>
、swift Array を構築し (init のみ!)、これをポインターに渡していましたが、うまくいきました。
var bufferOut: UnsafeMutablePointer< UnsafeMutablePointer<Float32>>?
arrayOut = Array(repeating: Array(repeating: 0, count: Int(size1), count: Int(size2))
bufferOut = UnsafeMutablePointer< UnsafeMutablePointer<Float32>>(arrayOut)
これは、Swift 3 ではすべて壊れています。
float**
Cスタイルを渡して初期化する最も迅速な方法は何ですか?- に値を割り当てる最良の方法は何
UnsafeMutablePointer< UnsafeMutablePointer<T>>
ですか?
ドキュメンテーションには、 forT **
を使用する必要があると書かれていますAutoreleasingUnsafeMutablePointer<T>
が、実際に作成することはできませんでした!
上記の例では、配列は実際には気にしないことに注意してください。既知の容量を使用して Pointer を直接初期化できれば、そうします。
注: UnsafeRawPointer の予期されるユース ケース セクションでは、 C 配列や C バッファーなどの便利な状況について説明していますが、上記の構造のそのようなメソッドを変換することは明らかではありません!