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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/50920716

之前写了一个小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 条评论
登录 后参与评论

相关文章

来自专栏ios 技术积累

iOS SDWebimage 源码阅读

简介 SDWebimage是 iOS 的图片加载框架。它支持从网络中下载且缓存图片,并设置图片到对应的 UIImageView 控件或者 UIButton 控...

20610
来自专栏冰霜之地

Weex 是如何在 iOS 客户端上跑起来的

2016年4月21日,阿里巴巴在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请。Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出N...

55330
来自专栏一“技”之长

iOS开发swift版异步加载网络图片(带缓存和缺省图片)

    与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存。

16930
来自专栏谈补锅

控制器和应用数据存储

1、UINavigationController, 继承UIViewController,UINavigationController以栈的形式保存子控制器

10930
来自专栏進无尽的文章

基础篇- 沙盒以及文件的操作和存取

iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒,所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列...

25210
来自专栏ShaoYL

iOS--多线程之线程间通讯

29580
来自专栏小蠢驴iOS专题

手把手教你使用Bugly收集线上崩溃信息

1.4K30
来自专栏一“技”之长

SDWebImage源码分析 原

     SDWebImage是iOS开发中非常流行的一个网络图片加载库,如果你观察其源码,会发现其中的文件非常多,虽然文件数很多,但是作者的代码结构和条理却是...

30230
来自专栏一“技”之长

iOS9系列专题二——全新的搜索功能api 原

        iOS9中为我们提供了许多新的api,搜索功能的加强无疑是其中比较显眼的一个。首先,我们先设想一下:如果在你的app中定义一种标识符,在siri...

11650
来自专栏進无尽的文章

实践-小细节Ⅶ

所以网页的y 坐标是 0 ,但是在 iOS 11里面就是无法在 状态栏上显示,iOS11下的系统不会这样会占用 状态栏的位置

8520

扫码关注云+社区

领取腾讯云代金券