我有一个图像的 NSData,现在我想将几个字节附加到图像的 NSData,我有字节作为 Hexdump 字符串。我需要附加这个:62706c69 73743030 23400000 00000000 00080000 00000000 01010000 00000000 00010000 00000000 00000000 00000000 00113 200 0000e802 00007005 00000100 00000100 00009132 a4cb
到图像NSData的末尾。我想我应该从 hexdump 字符串创建一个 NSData,但我不知道该怎么做
有人知道吗?
最佳答案
你现在有一个 NSData 对象,我们称它为 origData
,还有一个 NSString,我们称它为 str
。首先,从字符串中删除所有空格或无关字符,因此它只是纯十六进制。您还可以检查长度是否均匀,如果不是,则表示格式不正确。
NSMutableData *data = [NSMutableData dataWithData:origData];
const char *ptr = [str cStringUsingEncoding:NSASCIIStringEncoding];
NSUInteger len = [str length]/2;
while(len--) {
char num[5] = (char[]){ '0', 'x', 0, 0, 0 };
num[2] = *ptr++;
num[3] = *ptr++;
uint8_t n = (uint8_t)strtol(num, NULL, 0);
[data appendBytes:&n length:1];
}
我已经使用这种代码很多年了,YMMV。
关于ios - 如何从 Hexdump 字符串中创建 NSData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22647102/