Iphone 如何将字节数组转换为NSString或NSMutableArray

Iphone 如何将字节数组转换为NSString或NSMutableArray,iphone,Iphone,我正在从服务器接收一些字节数据,定义如下 - (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag { \//04 01 00 NSString *string = [ [NSString alloc] initWithData:data

我正在从服务器接收一些字节数据,定义如下

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

      \//04 01 00
NSString *string = [
                    [NSString alloc] 
                    initWithData:data
                    encoding:NSASCIIStringEncoding
                    ];
NSLog(string);

char *ptr = (void *)[data bytes]; // set a pointer to the beginning of your data bytes

if(*ptr == 0x06) {
    NSLog(@"okay,.. got a  0x06");
}
ptr++; // go to the next byte
if(*ptr == 0x05) {
    NSLog(@"okay,.. got a 0x05");
}
ptr++;
if(*ptr==0X00){
    NSLog(@"okay,.. got a 0X00");

}


//04 01 00
NSString* newStr = [[NSString alloc] initWithData:data
                                         encoding:NSASCIIStringEncoding];
///////////////////
///////////////////
NSLog(@"I received some thing , now trying to read it");
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Data Received" message:newStr delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alert show];
[alert release];

 [sock readDataWithTimeout:-1 tag:0];
//NSLog(@"Reading %@",newStr);
}


我可以比较hexa值,但无法在UIAlertView中查看,因为我认为我无法正确转换,因此请帮助我如何将in转换为NSString和NSMutableArray,以便我可以动态使用它

我没有尝试您的代码,但并非所有ascii字符都可以直观地表示。尝试使用ascii码>32的代码,查找字母或数字。或者以十进制或十六进制数字的形式回显字符。

试试这个

   NSString* newStr = [[NSString alloc] initWithData:data
                                     encoding:NSUTF8StringEncoding];

您希望UIAlertView显示什么?数据的十六进制表示法?是的,我也不能使用NSLog查看数据,我已经用硬代码比较了数据,我想按数组进行比较如果你想查看原始二进制数据的十六进制表示法,你需要显式转换它,如