创建包含二进制字节的NSdata对象



我正在开发一个iOS测试应用程序,以使用我开发的蓝牙4.0 LE模块。该模块充当与其他电子设备的无线UART连接。我需要通过外围设备发送一个二进制字节数组。我的设置已经使用NSdata,并通过蓝牙将其传输到模块。

举个例子,我有一个NSString@"ABCDE",然后字符串被转换为NSdata并传输,它到达我的模块,因为"ABCCE"工作得很好,没有问题。

然而,对于我的一个主要应用程序,我需要使用查找表将字符串的字符转换为专有的字节数组。然后,这个字节数组需要成为NSdata并被传输。

这里有一个例子:

假设我有string @"A",一个查找函数确定每个"a"变成5个二进制字节:"0111111 1001000 100100 0111111 0000000"(所有字母都由5个字节的二进制数据组成。

现在我需要将其存储在NSData对象中,以便通过蓝牙发送。我遇到的问题是,如果我使用该数据的字符串表示,我最终会得到一个不正确的数据对象。我试过很多东西,但似乎都不起作用。如有任何帮助,我们将不胜感激!

这只是一个例子,但我认为您可以理解这一点,只需正确设置字节数组的值并将其传递给NSData:

char t[16];
t[0] = ((UUID >> 8) & 0xff);
t[1] = (UUID & 0xff);
NSData *data = [[NSData alloc] initWithBytes:t length:16];

最新更新