我正在尝试在NSArray中添加Hexa字符,如下所示
[[NSArray alloc]initWithObjects:0x0C,0xFF,0x46,0x64, nil];
但它通过说明EXE_BED_ACCESS崩溃了。任何人请帮助我如何在NSArray中保存这些字符?
答案 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];
它经过测试,工作正常,没有崩溃。