iDevice で受信する必要がある 8 バイトの数値を (ac# Windows サーバーから) ネットワーク経由で送信しています。値は、私のサーバー (System.Int64) の「長い」変数です。を使用して、値が正しくバイト配列に変換されていることを確認しました
byte[] valueBytes = BitConverter.GetBytes(mylongvalue);
データは、NSData 変数を介して iDevice で受信されます。最初の 3 バイトをスキップし、次の 8 バイトを読み取って long long 値を計算する必要があります。
私はこれを試しました:
NSData * longlongValueBytes = [receivedData subDataWithRange:NSMakeRange(3,8)];
long long receivedLongLongValue = *(const long long *)[longlongValueBytes bytes];
ただし、これは 128 未満の値に対してのみ機能します。128 以上の値を送信すると、受信時に常に 127 が返されます。
何が欠けていますか?これは、符号の問題、またはエンディアンの問題に関連している可能性がありますか?
ご協力いただきありがとうございます。