バイトのダンプがあり、構造を解析する必要があります
c++ の例:
(*(SomeStruct*)(bufPtr))
どうすればswiftでできますか?
バイトのダンプがあり、構造を解析する必要があります
c++ の例:
(*(SomeStruct*)(bufPtr))
どうすればswiftでできますか?
C コードに相当するものは次のようになります。
let s = UnsafePointer<SomeStruct>(bufPtr).memory
bufPtr
(名前のない引数の初期化子を持つ型であると仮定しUnsafePointer
ます-そうでない場合は、別の特定の初期化子が必要になるか、もう少し強制する必要があります。)
C/C++ に適用されるのと同じ警告がここにも適用されbufPtr
ますSomeStruct
。
一方、バイトを 1 つずつステップ実行する場合はvar ptr = UnsafePointer<UInt8>(bufPtr)
、C ポインターのようにインデックスを付けてインクリメントできる を作成できます (つまりptr[i]
、 と ++ptr
)。
読み取ったバイト数が事前にわかっている場合は、それをバッファ ( let buf = UnsafeBufferPointer(start: ptr, count: i)
) に保存することもできます。これにより、通常のコレクションのように扱うことができます ( 、などと一緒for-in
に使用します)。繰り返しますが、鍵は名前にあります。カウントを台無しにすると、これは安全ではありません。map
find