Objective c 将图像从url保存到磁盘不起作用

Objective c 将图像从url保存到磁盘不起作用,objective-c,uiimage,afnetworking,afnetworking-2,Objective C,Uiimage,Afnetworking,Afnetworking 2,我正在尝试从我的应用程序中的url下载一个图像,以便今天的扩展可以使用它 所以我调用[self-downloadImageFromUrl:imageOne]: - (void)downloadImageFromUrl:(NSString *)url { NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; AFHTTPRequestOperation *requestOp

我正在尝试从我的应用程序中的url下载一个图像,以便今天的扩展可以使用它

所以我调用
[self-downloadImageFromUrl:imageOne]

- (void)downloadImageFromUrl:(NSString *)url {
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];

    AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
    [requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSURL *storeUrl = [fileManager containerURLForSecurityApplicationGroupIdentifier:@"group.myapp.TodayExtensionDefaults"];
        NSString *path = [storeUrl absoluteString];
        path = [path stringByAppendingPathComponent:@"Test/imageOne.png"];

        NSLog(@"Path is %@", path);

        NSLog(@"Response: %@", responseObject);
        UIImage *image = responseObject;

        [UIImagePNGRepresentation(image) writeToFile:path atomically:YES];

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Image error: %@", error);
    }];

    [requestOperation start];
}
所以当我运行这个程序时,一切都正常运行。我没有错误。然而,当我转到模拟器中登录的文件夹时,没有文件存在。我从写入操作中得到的错误是
write返回错误:操作无法完成。(可可错误4。)
。因此,我将写入操作更改为:

if (![[NSFileManager defaultManager] fileExistsAtPath:path]) {
    NSError *error = nil;
    if (![[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error]) {
        NSLog(@"Error: %@. %s, %i", error.localizedDescription, __PRETTY_FUNCTION__, __LINE__);
    }
}

[UIImagePNGRepresentation(image) writeToFile:path options:NSDataWritingAtomic error:&error];

但是我仍然得到
Write返回的错误:操作无法完成。(Cocoa错误4。)
您正在抓取
绝对字符串(其中包括方案和其他内容):

我相信你想要的是
路径

NSString *path = [storeUrl path];

NSLog的输出是什么(@“Response:%@”,responseObject)?我假设它是一堆六进制数,它不是一个
UIImage
。。。另外,您是否尝试过创建图像视图并在其中显示图像?
writePath:automatically
会输出
,{318178}
,并且
UIImageView
会正确显示图像。所以我不知道为什么我会被否决…writeFile返回值?那么如何测试/捕获函数的返回值?。。。如何测试:
[storeUrl absoluteString]的返回值?您还可以尝试使用
writeToFile:options:error:
datawriteingatomic
作为选项,并向其提供一个NSError**对象,以查看是否发生了任何错误。
NSString *path = [storeUrl path];