解决“真机上不能读取本地路径”的问题d

之前写了一个小demo,功能是获取相册中的某张图片并将此图片写入到本地,然后再从本地将此图片取出显示出来。有人会说这是干嘛啊?存进去再取出来。。。我这样做是为了将来上传图片的时候能用,如我们的上传头像功能。首先我们得选取相册中的图片,然后上传到远程服务器上。在上传图片的过程中,我们首先就得从本地取出图片。

可我却遇到了问题,在模拟器上取图片的时候是完全可以的,可当在真机上的时候就出现了问题。

对比图

模拟器上:

真机上:

遇到这种问题我实在不知道该怎么百度,于是去向他人请教。还是自己太菜,经高手指点才明白,原来是保存的路径有问题。

原代码:

#pragma mark 保存图片到document

- (void)saveImage:(UIImage *)tempImage WithName:(NSString *)imageName

{

    NSData * imageData = UIImageJPEGRepresentation(tempImage, 0.5); // 对图片进行了压缩


      

    NSString * fullPathToFile = [NSHomeDirectory() stringByAppendingString:[NSString stringWithFormat:@"/%@" ,imageName]];

    // and then we write it out

    [imageData writeToFile:fullPathToFile atomically:NO];

       

    

    // 将存入到沙盒的图片再取出来,目的是为了进行上传

    NSLog(@"fullPathToFile:%@", fullPathToFile);

    // 二进制的数据就可以进行上传

    UIImage * image = [UIImage imageWithContentsOfFile:fullPathToFile];

    _image = image;

}

修改后的代码:

#pragma mark 保存图片到document

- (void)saveImage:(UIImage *)tempImage WithName:(NSString *)imageName

{

    NSData * imageData = UIImageJPEGRepresentation(tempImage, 0.5); // 对图片进行了压缩


      

    NSString * fullPathToFile = [NSHomeDirectory() stringByAppendingString:[NSString stringWithFormat:@“/Documents/%@" ,imageName]];

    // and then we write it out

    [imageData writeToFile:fullPathToFile atomically:NO];

       

    

    // 将存入到沙盒的图片再取出来,目的是为了进行上传

    NSLog(@"fullPathToFile:%@", fullPathToFile);

    // 二进制的数据就可以进行上传

    UIImage * image = [UIImage imageWithContentsOfFile:fullPathToFile];

    _image = image;

}

还是保存路径的问题。沙盒基本路径分为Documents、Library、temp,在本目录层同一级不能自定义目录,系统不允许,可以随便存到这三个目录层的子集里。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值