NSDataの値を変更したい。
NSDataを書き換えたいのですがうまくいきません。
var baseData = NSData()
baseData = XXXXX() ※ 別のメソッドからNSDataを取得
var ptr = UnsafePointer<構造体(C言語の型にキャスト)> (baseData.bytes).memory
withUnsafeMutablePointer(&ptr.test.info.0) { infoPtr in
for index in 0..<infoの配列数{
print("old\(infoPtr[index].longdata)")
infoPtr[index].longdata = infoPtr[index].longdata.bigEndian
print("new\(infoPtr[index].longdata)")
}
}
var ptr2 = UnsafePointer<構造体(C言語の型にキャスト)> (baseData.bytes).memory
withUnsafeMutablePointer(&ptr2.test.info.0) { infoPtr in
for index in 0..<infoの配列数{
print("check \(infoPtr[index].longdata)")※再度読みだし
}
}
このような形で一部のデータをエンディアン変換しています。
変換前後の値をログで見ると変わっていることを確認できるのですが
再度読み出しても値が変わっていません。
NSDataの一部を書き換えるにはどうするのがよいのでしょうか・・・
□追記
構造体
typedef struct {
short info[10];
int infoint;
} INFO_STR;
typedef struct {
INFO_STR test;
int testint;
} TEST_STR;