如何在NSArray中保存十六进制字符

时间:2013-12-06 12:01:38

标签: ios nsarray character

我正在尝试在NSArray中添加Hexa字符,如下所示

           [[NSArray alloc]initWithObjects:0x0C,0xFF,0x46,0x64, nil];

但它通过说明EXE_BED_ACCESS崩溃了。任何人请帮助我如何在NSArray中保存这些字符?

2 个答案:

答案 0 :(得分:3)

您无法将非对象存​​储到Objective-C对象。

在将其添加到数组之前,您需要将所有这些Hexa字符转换为objective-c对象。

将其格式化为NSNumber,然后使用

[[NSArray alloc] initWithObjects:@(0x0C), @(0xFF), @(0x46), @(0x64), nil];

要将其转换回来,您需要再次取消该号码。

NSNumber *num = self.array[2]; //here i am extracing only the 3rd object.
NSInteger integerValue = [num integerValue];

NSLog(@"%X",integerValue);

答案 1 :(得分:0)

将@放在HEX字符前面

NSArray *ArrayName = [[NSArray alloc]initWithObjects:@0x0C,@0xFF,@0x46,@0x64, nil];

它经过测试,工作正常,没有崩溃。