UIImage无法保存到文档文件夹ios

Posted

技术标签:

【中文标题】UIImage无法保存到文档文件夹ios【英文标题】:UIImage cant save to document folder ios 【发布时间】:2017-09-05 08:04:09 【问题描述】:

我正在尝试将 uiimage 保存到文档文件夹,但无法使用以下代码找到它:

-(void) BtnClicked: (id)sender
    NSLog(@"Btn clicked");
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"file2.txt"];
    NSString *pngPath = [documentsDirectory stringByAppendingString:@"test2.png"];
    NSString *str = @"hello world";
    UIImage *uiImage = [UIImage imageNamed:@"test.png"];
    NSData *dataImage = [NSData dataWithData:UIImagePNGRepresentation(uiImage)];
    UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 300)];
    imageView.image = uiImage;
    [self.view addSubview: imageView];
    [dataImage writeToFile:pngPath atomically:YES];
    [str writeToFile:filePath atomically:TRUE encoding:NSUTF8StringEncoding error:NULL];


如上所示,我添加了一个字符串一起测试,我可以在Xcode下载的容器中找到file2.txt但找不到png文件,我还添加了一个UIImage视图到显示图像以避免其他错误,并且图像已成功显示。

出了什么问题?

【问题讨论】:

您的pngPath 看起来有问题,您使用的是stringByAppendingString 而不是stringByAppendingPathComponent 【参考方案1】:

你有一个小错误

同时观察

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"file2.txt"];
NSString *pngPath = [documentsDirectory stringByAppendingString:@"test2.png"];

stringByAppendingPathComponent应该用在stringByAppendingString的地方

希望能解决你的问题

编辑

您应该创建一个允许对文件夹进行所有操作的类,而不是这样使用

我已经在https://***.com/a/45963431/4601900发布了答案

如果与此相关,请使用该类

【讨论】:

以上是关于UIImage无法保存到文档文件夹ios的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UIImage 保存到文档目录?

如何使用 NSFileManager 将 UIImage 保存到文件中?

Xcode iOS 生成 .png 文件并使用 NSFileManager 保存

iOS Swift - 在 UIImage 上画线以保存到文件

使用 Swift 5 - PDFKit 在 iOS 中编辑和保存现有的 pdf 文档

使用 NSObjects 将文件保存到文档 NSMutableArray 的问题