我有一些 NSData
,它是 Base-64 编码的,我想解码它,我见过一个看起来像这样的例子
NSData* myPNGData = [xmlString dataUsingEncoding:NSUTF8StringEncoding];
[Base64 initialize];
NSData *data = [Base64 decode:img];
cell.image.image = [UIImage imageWithData:myPNGData];
但是这给了我很多错误,我想知道该怎么做才能让它工作。是否需要将某种类型的文件导入到我的项目中,或者我是否必须包含一个框架?
这些是我得到的错误
Use of undeclared identifier 'Base64'
Use of undeclared identifier 'Base64'
Use of undeclared identifier 'cell'
我到处都看了,想不通什么是正确的做法。
最佳答案
您可以将 Base64 编码的字符串解码为 NSData
:
-(NSData *)dataFromBase64EncodedString:(NSString *)string{
if (string.length > 0) {
//the iPhone has base 64 decoding built in but not obviously. The trick is to
//create a data url that's base 64 encoded and ask an NSData to load it.
NSString *data64URLString = [NSString stringWithFormat:@"data:;base64,%@", string];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:data64URLString]];
return data;
}
return nil;
}
使用上述方法从 Base64 字符串中获取图像的示例:
-(void)imageFromBase64EncodedString{
NSString *string = @""; // replace with encocded string
NSData *imageData = [self dataFromBase64EncodedString:string];
UIImage *myImage = [UIImage imageWithData:imageData];
// do something with image
}
关于ios - 在 NSString 中解码 Base-64 编码的 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704915/