如何转换十六进制格式的字符串以从中检索NSData,然后在我的iPhone应用程序中检索UIImage?
我有一个字符串(str),其中包含类似X'FFD8FFE000104A46 .... 01010000010001000'的值。
该字符串是通过以下方法从xml文件创建的:
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
str = [str stringByAppendingString:string];
}
如何从该字符串中恢复图像?
提前致谢,
安德烈
答案 0 :(得分:0)
要将NSData转换为NSString,请尝试“initWithData:encoding:”
要将NSData转换为UIImage,请尝试“imageWithData:”
答案 1 :(得分:0)
您可以从Google Toolbox For Mac中找到有用的GTMStringEncoding。
答案 2 :(得分:0)
我的示例代码,已更新!
-(NSData*)toString:(NSString*)uniStr
{
int len=[uniStr length]/4;
unichar *oux=alloca(len*sizeof(unichar));
unichar *p = oux;
for (int i=0; i<[uniStr length]/4; i++) {
NSInteger first= i*4;
NSUInteger a =toInde([uniStr characterAtIndex:first])<<4;//3 3c
NSUInteger b =toInde([uniStr characterAtIndex:(first+1)]);//2
NSUInteger c =toInde([uniStr characterAtIndex:(first+2)])<<12 ;//0 68
NSUInteger d =toInde([uniStr characterAtIndex:(first+3)])<<8;//0
unichar x = a+b+c+d;//十进制 3c68->683c
memcpy(p, &x, 2);
p++;
}
return [NSData dataWithBytes:oux length:len*2];
}
int toInde(int x)
{
char b=0;
sprintf(&b, "%c",a);
return b;
}