iOSバイトオーダーに問題があります。私たちはBLEを介してメッセージを送信していますが、一部の値はNSIntegerオブジェクトとして保存されています。iOSで一貫したバイトオーダーを維持するためのエンディアンを検出する方法
私は古い(まだサポートされている)iPadに、ビーエンディアンのバイトオーダーの整数を格納しています。しかし、新しいiPhoneで同じアプリケーションを実行しても動作しないので、エンディアンが逆転します。あなたがバイト順が2つのデバイス上で異なっている見ることができるように通じてくる結果の値が
On iPad: 230 (00E6)
On iPhone: 58880 (E600)
、私はちょうど私が検出し、必要に応じて、バイトを入れ替えることができます方法を知っているしたい
NSInteger number = 230; /* this is actually declared elsewhere, this is just for the example */
short value = (short)number;
NSData* data = [NSData dataWithBytes:(void*)&value length:sizeof(value)];
int intData = [self intFromNSData:data];
私は周辺機器にそれらを送信する前に。または、これらの番号を保存する方法がありますが、これはすべてのデバイスで一貫していますか?