在BLE
开发的项目中。
我必须将十六进制数据写入peripheral
,
但现在我有一个中文字符串:
NSString *originStr = @"PJ1中国";
但是演示是:
Byte b = 0X01; // ER: 4552 PJ1我爱廖马儿:504A31CED2B0AEC1CEC2EDB6F9
NSData *data = [NSData dataWithBytes:&b length:sizeof(b)];
[self.currPeripheral writeValue:data forCharacteristic:self.characteristic type:CBCharacteristicWriteWithResponse];
现在我的问题是如何在演示中将@"PJ1中国"
转换为data
。
答案 0 :(得分:0)
感谢Larme的提示,我使用此函数获取data
:
NSString *dataStr = writeStr;
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); NSData *myData = [dataStr dataUsingEncoding:enc];
我使用以下内容将信息写入development board
:
[self.currPeripheral writeValue:data forCharacteristic:self.characteristic type:CBCharacteristicPropertyWrite];
请注意:type
不是问题的演示:CBCharacteristicWriteWithResponse
,但类型为:CBCharacteristicPropertyWrite
。
或者它会导致错误:
Error Domain=CBATTErrorDomain Code=3 "Writing is not permitted." UserInfo={NSLocalizedDescription=Writing is not permitted.}
。我也再次感谢Larme的暗示。