通过base64编码转化为image 并保存在沙箱
    //command是phonegap js与oc交互传过来的参数列表
    //
    NSString *url = [command.arguments objectAtIndex:0];
// 去除base64前缀 取前20做对比 并作为文件名存储
//NSLog(@"%@",url);
NSString *imgName = [url substringWithRange:NSMakeRange(28, 42)];
NSLog(@"%@",imgName);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSLog(@"%@",documentsPath);
NSString *imgPath = [NSString stringWithFormat:@"%@/img",documentsPath];
if(![[NSFileManager defaultManager]fileExistsAtPath:imgPath]){
    [[NSFileManager defaultManager]createDirectoryAtPath:imgPath withIntermediateDirectories:YES attributes:nil error:nil];
}
NSData *imgData =[[NSData alloc]initWithBase64EncodedString:url options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSString *imgNameA = [imgPath stringByAppendingFormat:@"%@/.png",imgName];
if (![[NSFileManager defaultManager]fileExistsAtPath:imgNameA]) {
    UIImage *image = [UIImage imageWithData:imgData];
    NSLog(@"%@",image);
    [UIImagePNGRepresentation(image) writeToFile:imgNameA atomically:YES];
    //[UIImageJPEGRepresentation(image, 1.0) writeToFile:imgNameA atomically:YES];

图片说明

图片说明
为啥imgData为空 查看文档看了看 我的url是可以decode成图片的

图片说明
不太明白为啥

            但是 把NSData *imgData =[[NSData alloc]initWithBase64EncodedString:url options:NSDataBase64DecodingIgnoreUnknownCharacters];
            换成ios6的NSData *imgData =[[NSData alloc]initWithBase64Encoding:url];
            imgData就不为空了 但是 [UIImage imageWithData:imgData]返回的结果为空 感觉是data的数据不太对
ios
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问