将NSString键转换为2个字节的数组

时间:2015-02-19 12:57:28

标签: ios xcode nsstring byte

对于项目,我需要通过蓝牙将密钥发送到BLE设备。

我从我的webservice接收密钥作为NSString。例如1234

现在我需要发送到设备的是

Byte byteArray[] = {0x12, 0x34};

是否有人可以给我一些示例代码,告诉我如何做到这一点?

由于

2 个答案:

答案 0 :(得分:0)

要将字符串作为字节发送,您应该使用以下代码:

NSString *yourString = @"1234";
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
NSUInteger len = [data length];
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [data bytes], len);

但是0x12十六进制等于十进制的18

有用的链接:

答案 1 :(得分:0)

我终于使用组合webservice-xcode设法做到了这一点 我没有将整个密钥作为一个字符串发送,而是将其拆分并在PHP中将前两个数字转换为十六进制(在Web服务上)。

使用此代码,我创建了正确的字节数组,用于发送代码:

NSString *key1 = [message objectForKey:@"key1"];
NSString *key2 = [message objectForKey:@"key2"];
unsigned char byteArray[2];
byteArray[0] = [key1 intValue];
byteArray[1] = [key2 intValue];