从NSMutableArray创建Byte数组

时间:2014-04-21 08:32:56

标签: ios iphone objective-c cocoa-touch bytearray

我想像这样创建一个Byte数组;

   Byte UUID[] = {0xEB, 0xEF, 0xD0, 0x83, 0x70, 0xA2, 0x47, 0xC8, 0x98, 0x37, 0xE7, 0xB5, 0x63, 0x4D, 0xF5, 0x24};

但我面临的问题是,我需要以NSMutableArray编程填充上述数组中的所有元素,其中包含如下值;

(
    0xEB,
    0xEF,
    0xD0,
    0x83,
    0x70,
    0xA2,
    0x47,
    0xC8,
    0x98,
    0x37,
    0xE7,
    0xB5,
    0x63,
    0x4D,
    0xF5,
    0x24
)

我已尝试使用每个索引的整数值,但它在字节数组中显示'/ 0'。 如果有人有任何相关信息,请分享。

谢谢

1 个答案:

答案 0 :(得分:1)

假设您有一个字符串“0xEB”,“0xEF”,......的数组,以下内容应该有效:

NSArray *array = @[@"0xEB", @"0xEF", @"0xD0", @"0x83", @"0x70", @"0xA2", @"0x47", @"0xC8", @"0x98", @"0x37", @"0xE7", @"0xB5", @"0x63", @"0x4D", @"0xF5", @"0x24"];
Byte UUID[16];
for (int i = 0; i < 16; i++) {
    UUID[i] = strtoul([array[i] UTF8String], NULL, 16);
}

即使字符串没有“0x”前缀,这也有效:

NSArray *array = @[@"EB", @"EF", ...]

因为strtoul(string, ..., 16)读取带有或不带“0x”前缀的字符串 在base 16中,并将其转换为整数。