迭代传入的数据

时间:2013-04-08 09:44:55

标签: iphone ios objective-c

我从服务器接收了像210502113c4d这样的NSData。我将这些数据转换为NSString格式。我想从这个输入数据中检索3个字节,即2105 02 113c4d。我试过以下:

NSData *demoData=[string dataUsingEncoding:NSASCIIStringEncoding];
NSLog(@"demo data :%@",demoData);
const char *bytes=[data bytes];
NSMutableString *result = [NSMutableString string];
for (int i = 0; i < [demoData length]; i++)
{
    [result appendFormat:@"%02hhx", (unsigned char)bytes[i]];
}

但它不起作用。请给我一些解决方案来实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

代码获取字符串第三个字节的值,假设字符串包含十六进制的字节,格式为:

NSString* string = @"210502113c4d";
NSString* thirdByte = [string substringWithRange:NSRangeFromString(@"4,2")];
NSScanner* scanner = [NSScanner scannerWithString:thirdByte];
NSUInteger value;
[scanner scanHexInt:&value];
NSLog(@"%u", value); // 2