NSData内にあるバイトデータを構造体へのポインタとしてアクセスするには
UnsafeMutablePointer型を何とか利用して
構造体へのキャストもできるのではと考えたのですが、
下記のようにした場合、
(1):構造体を初期化
(2):構造体のポインタを取得
その後、(3)のようにしてみたもののmyptrにdataが設定されませんでした。
何か良い方法はないのでしょうか。
C言語のヘッダーファイル
typedef struct {
u_char test1;
u_char test2;
u_char test3[2];
} TEST_STR;
swiftソース
func casttest(data: NSData) -> UnsafeMutablePointer<TEST_STR> {
var test = TEST_STR() // (1)
var myptr = withUnsafeMutablePointer(&test){$0} // (2)
// myptr.memory.test1 で参照できた(初期化しているので値は0)
data.getByte(&myptr, length: sizeof(TEST_STR) // (3)
return myptr
}