图片来自 URL,以 .zip 结尾

Image from URL with .zip ending

我得到一个 URL,我需要从中提取图像。图片是 PNG,但是 URL 看起来像这样:

http://某物.../something.zip

如果我在 Safari 中打开这个 URL,它会自动下载 PNG。但是,当我尝试在我的程序中加载时,我得到一个 nil UIImage 对象。

我的代码:

- (void)fetchImageFromURL: (NSString *)urlString {
    NSURL *url        = [NSURL URLWithString:urlString];
    
    NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        if (error) {
            NSLog(@"%@", error.localizedDescription);
            
        } else {
            if (data) {
                UIImage *image = [UIImage imageWithData: data];
                if (image) {
                    [self.randomImageImageView setImage: image];
                } else {
                    NSLog(@"Image is nil.");
                }
            } else {
                NSLog(@"Could not retrieve data.");
            }
        }
    }];
    [task resume];
}

这是因为 Safari 会自动解压缩小于特定大小的 zip 文件。这意味着您需要先以编程方式解压缩文件,然后从那里找到您的图像。