我在处理iOS字节顺序时遇到了问题。我们通过BLE发送消息,其中一些值存储为NSInteger对象。
我的旧款(但仍受支持的)iPad似乎使用大端字节顺序存储整数,这是我们外围设备正确解释该值所必需的,然而当我在新款iPhone上运行相同的应用程序时它不起作用,并且字节顺序被反转了。
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)
如您所见,两个设备的字节顺序不同,我想知道如何在将它们发送到外围设备之前检测并(如果需要)交换字节。或者是否有一种不同的方式来存储这些数字,以确保在所有设备上都始终一致?
CF
前缀而不是CG
。我无法编辑它,因为必须至少更改6个字符。 - vpoltave