問題タブ [uint16]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - [UIn16] を UnsafeMutablePointer に迅速に変換
Swift からa を取る C 関数を呼び出すために、UInt16
配列を anに変換しようとしています。UnsafeMutablePointer<UInt16>
uint16_t *
出発点が[UInt8]
で、目的地がUnsafeMutablePointer<UInt8>
だったら、すべてが簡単です。配列を に変換しData
、そこからNSData
を呼び出しbytes.assumingMemoryBound
、これで (ほぼ) 完了です。
しかし、目の前のタスクでは、私が検討しているいくつかの異なるパスがあります。1 つの方法は、 を に変換し、[UInt16]
上記[UInt8]
と同じデータ パスを使用してから、assumingMemoryBound
呼び出しで別の型を指定することです。
ただし、それは予想以上に複雑であることが証明されています。UInt8
たった 2 つの s の配列を 1 つに変換する方法については、たくさんの質問がありUInt16
ます。1 つのを 2 つの sに変換する方法を尋ねる1 つの質問を見つけましたが、配列を変換するときはすべてがより複雑になっているようです。UInt16
UInt8
私が試みている他のアプローチは、単純に配列値を取得し、中間呼び出しまたはそのようなものを使用して[UInt16]
変換しようとすることですが、Swift には一致しないさまざまなポインター型がたくさんあります。具体的には、これが私の以前の試みの1つです。UnsafeMutablePointer<UInt16>
withUnsafeBytes
ただし、次のエラーが発生します。
タイプ「UnsafeRawBufferPointer」の値を予期される引数タイプ「UnsafePointer」に変換できません
おそらく、適切な質問や適切なドキュメント ページをまだ見つけていないだけなので、正しい方向への指針をいただければ幸いです。