注册 登录
主题 : 沙盒存储读取图片问题
级别: 侠客
UID: 570258
精华: 0
发帖: 147
可可豆: 336 CB
威望: 336 点
在线时间: 564(时)
注册时间: 2016-06-25
最后登录: 2018-05-24
0 楼:  发表于: 2018-05-17 11:41    发自: Web Page
来源于 一般提问 分类

沙盒存储读取图片问题   

问题概要:
选取相机相册一张图片,保存到沙盒中并显示在UIImageView上。退出界面后,再次进入,判断沙盒有没有图片。有,加载沙盒图片;无,加载占位图


现在是app不重启,可以读取沙盒图片;一旦重启读不到沙盒图片,我查看沙盒确实有图片。有没有朋友遇到过


代码如下:
存入沙盒


UIImage *img = info[UIImagePickerControllerEditedImage];

if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {// 相机存储
//保存图片至相册
UIImageWriteToSavedPhotosAlbum(info[UIImagePickerControllerOriginalImage], self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
}
// 保存
NSString *imagePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"ly_head.png"];


[UIImagePNGRepresentation(imagePath) writeToFile:imagePath atomically:YES];


[[NSUserDefaults standardUserDefaults] setObject:imagePath forKey:@"LocalImage"];


[[NSUserDefaults standardUserDefaults] synchronize];





读取图片:

if (headpath && [headpath containsString:@"png"]) {

self.headerImgV.image = [[UIImage alloc] initWithContentsOfFile:headpath];


} else {


self.headerImgV.image = [UIImage imageNamed:@"ic_header"];


}







关键词: iOS
级别: 侠客
UID: 570258
精华: 0
发帖: 147
可可豆: 336 CB
威望: 336 点
在线时间: 564(时)
注册时间: 2016-06-25
最后登录: 2018-05-24
1 楼:  发表于: 2018-05-17 11:50    发自: Web Page
NSUserDefaults的问题!!!!!下午再来研究为什么
级别: 侠客
UID: 570258
精华: 0
发帖: 147
可可豆: 336 CB
威望: 336 点
在线时间: 564(时)
注册时间: 2016-06-25
最后登录: 2018-05-24
2 楼:  发表于: 2018-05-17 13:16    发自: Web Page
沙盒路径会改变。。。

这是app运行时的图片路径:
(lldb) po imagePath
/var/mobile/Containers/Data/Application/56E5A4A6-7723-4D83-AAD1-905DF6AC4DBC/Documents/ly_head.png

(lldb) po [UserModel sharedUserModel].headPic
/var/mobile/Containers/Data/Application/56E5A4A6-7723-4D83-AAD1-905DF6AC4DBC/Documents/ly_head.png

(lldb) po [[NSUserDefaults standardUserDefaults] objectForKey:LocalHeadImage]
/var/mobile/Containers/Data/Application/56E5A4A6-7723-4D83-AAD1-905DF6AC4DBC/Documents/ly_head.png

app再次重启后:
Printing description of imagePath:
/var/mobile/Containers/Data/Application/543CD426-C9EA-42E8-A422-3A32FA1165A1/Documents/ly_head.png
Printing description of cc:
/var/mobile/Containers/Data/Application/56E5A4A6-7723-4D83-AAD1-905DF6AC4DBC/Documents/ly_head.png
Printing description of aa:
/var/mobile/Containers/Data/Application/56E5A4A6-7723-4D83-AAD1-905DF6AC4DBC/Documents/ly_head.png

红色是NSSearchPathForDirectoriesInDomains读取沙盒路径,其他两个是缓存的路径地址

级别: 骑士

状态: 连续签到 - [61天]
UID: 517041
精华: 0
发帖: 255
可可豆: 603 CB
威望: 462 点
在线时间: 1969(时)
注册时间: 2015-10-23
最后登录: 2018-05-24
3 楼:  发表于: 2018-05-17 15:43    发自: Web Page
....存documents后面的路径啊  然后拼接沙盒
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部