我正在开发一个基于蓝牙的应用程序,当我试图将数据从iPhone发送到另一个设备时,我遇到了问题。
当我只需要发送一个值时,我没有问题,使用这样的东西:
- (void)sendData:(NSInteger)mel {
NSData *myData = [NSData dataWithBytes:&mel length:sizeof(mel)];
[self.myDevice writeValue:myData forCharacteristic:self.myCharacteristic type:CBCharacteristicWriteWithoutResponse];
}
但是,对于某些特征,我需要同时发送2个或更多的值(例如在这种情况下,变量mel和另一个),但我还没有能够做到这一点。
有人知道怎么做吗?提前谢谢。
更新1
我尝试发送的两个值是
unsigned char bytes[] = {mel, interval};
NSMutableData *myData = [NSMutableData new];
[myData appendBytes:&bytes length:sizeof(bytes)];
[self.myDevice writeValue:myData forCharacteristic:self.myCharacteristic type:CBCharacteristicWriteWithoutResponse];
如果第二个值不存在
您不能使用sizeof(bytes)
来获取数组中的字节数。它只会返回4
,因为这是char *
的大小。
一种选择是使用sizeof(mel) + sizeof(interval)
而不是sizeof(bytes)
。