如何将NSData转换为包含十六进制值的char数组

时间:2012-04-18 17:47:11

标签: iphone

我通过以下方法

接收NSData
     - (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag

服务器以下列格式发送数据

                 04 01 00  

作为hexa值。所以现在需要将这些数据转换为char数组,以便我可以分别访问每一对 请帮忙

1 个答案:

答案 0 :(得分:1)

如果你想逐字节比较,你可以这样做:

    //NSData *test; // assume this is your NSData containing 0x04 0x01 0x00

    char *ptr = (void *)[test bytes]; // set a pointer to the beginning of your data bytes
    if(*ptr == 0x04) {
        NSLog(@"okay,.. got a 0x04");
    }
    ptr++; // go to the next byte
    if(*ptr == 0x01) {
        NSLog(@"okay,.. got a 0x01");
    }

希望这对你有用。