Ios 如何从Hexdump字符串中创建NSData?
我有一个图像的NSData,现在我想在图像的NSData中附加几个字节,我把这些字节作为hextump字符串。我需要将以下内容附加到图像数据的末尾:Ios 如何从Hexdump字符串中创建NSData?,ios,objective-c,nsmutabledata,hexdump,Ios,Objective C,Nsmutabledata,Hexdump,我有一个图像的NSData,现在我想在图像的NSData中附加几个字节,我把这些字节作为hextump字符串。我需要将以下内容附加到图像数据的末尾:62706c69 73743030 23400000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000113200 0000e802 00007050000010000000
62706c69 73743030 23400000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000113200 0000e802 00007050000010000000010000009132 a4cb
。我想我应该从hextump字符串创建一个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。您现在应该知道您需要发布相关代码。