ios - 将图像文件保存在文档目录中并从中获取图像文件并在 Objective C 中的视图上显示
问题描述
我试图将图像文件保存在文档目录中,并通过 imageView 让文件显示在视图中。但是在保存图像后,当我从文档目录中获取图像时,我得到的值为 null。
- (IBAction)showImage:(id)sender {
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSLog(@"path: %@", path);
NSString *documentsDirectory = [path objectAtIndex:0];
NSLog(@"documentsDirectory: %@", documentsDirectory);
NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:@"nature1.jpg"];
NSLog(@"imagePath: %@", imagePath);
NSData *imgData = [NSData dataWithContentsOfFile:imagePath];
// NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:imagePath]];
[imgData writeToFile: imagePath atomically: YES];
NSLog(@"imgData: %@", imgData);
UIImage *showImg = [[UIImage alloc] initWithData:imgData];
// DocumentDirectoryImage.image = showImg;
}
Getting value on console :
imagePath: /Users/vikas.patil/Library/Developer/CoreSimulator/Devices/88A6BD16-9A62-4D9D-9852-5EA2E374060A/data/Containers/Data/Application/16083D44-0BFD-4CE6-8D4E-06A51EB908C1/Documents/nature1.jpg
2019-08-12 13:17:07.173 Assignment15[2270:107222] imgData: (null)
解决方案
请先将图像保存在文档目录中,然后尝试从同一链接获取数据。您的代码将在稍作更改后看起来像。
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSLog(@"path: %@", path);
NSString *documentsDirectory = [path objectAtIndex:0];
NSLog(@"documentsDirectory: %@", documentsDirectory);
NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:@"nature1.jpg"];
NSLog(@"imagePath: %@", imagePath);
// NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:imagePath]];
NSData *imageData = UIImagePNGRepresentation(yourImage);
[imageData writeToFile: imagePath atomically: YES];
NSData *imgData = [NSData dataWithContentsOfFile:imagePath];
NSLog(@"imgData: %@", imgData);
UIImage *showImg = [[UIImage alloc] initWithData:imgData];
推荐阅读
- c++ - 我无法从 mingw 开始使用 gdb 进行调试
- amazon-s3 - ELB 和 Cloudfront API 参数被忽略
- json - Pyspark - 从具有最小值和最大值范围的数组中获取值
- javascript - 从 React fetch 调用组件方法
- java - 按文件名对文件路径数组进行排序
- r - R: tr(), th() 和 thead() - 它们属于什么包?
- angular - 使用表单组循环遍历数据对象数组Angular
- css - 两个项目之间的 CSS 覆盖不同?
- web-scraping - 如何使用网络抓取从实时表中获取数据?
- php - 如何在php中检索文本作为可点击链接?