图片来自 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 文件。这意味着您需要先以编程方式解压缩文件,然后从那里找到您的图像。
我得到一个 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 文件。这意味着您需要先以编程方式解压缩文件,然后从那里找到您的图像。