iOS 바이트 주문에 문제가 있습니다. 우리는 BLE를 통해 메시지를 보내고 있습니다. 일부 값은 NSInteger 객체로 저장됩니다.iOS에서 일관된 바이트 순서를 유지하기 위해 엔디안을 감지하는 방법
이전 버전 (아직 지원됨)의 iPad에서 주변 기기가 올바르게 해석하기 위해 필요한 빅 엔디안 바이트 순서로 정수를 저장하는 것으로 보입니다. 가치, 그러나 새로운 아이폰에서 동일한 응용 프로그램을 실행하면 작동하지 않으며 endianness가 반대로됩니다. 당신이 바이트 순서는 두 장치에 다른 볼 수 있듯이 통해 오는
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];
결과 값은 그냥 필요하면 내가 감지 할 수 방법을 알고 싶어요, 바이트
On iPad: 230 (00E6)
On iPhone: 58880 (E600)
을 교환하다 주변기기로 보내기 전에. 또는이 장치를 저장하는 다른 방법이 모든 장치에서 일관 될 것입니까?