我正在为我的应用程序实现多个图像下载(至少4000多个图像),为此,我一直在寻找最佳实践,我找到的解决方案是使用具有背景的NSURLSession配置,我做了我在示例中找到的所有内容,但是,不能在我的真实设备中工作。
我在下载完成后进行了测试显示本地通知,当我处于调试模式时,通知显示完美,但是当我拔下设备时,通知无效。
注意:调试中的内存消耗很低,但是能量影响很大,操作系统可能会终止进程以防止丢失?
有什么想法吗?
答案 0 :(得分:0)
为了下载图片,我强烈推荐SDWebImage。它是一个非常强大的库,已经维护了很长时间,应该能够做你想要的一切。
即使只是下载图片,也很简单:
SDWebImageDownloader *downloader = [SDWebImageDownloader sharedDownloader];
[downloader downloadImageWithURL:[NSURL URLWithString:@"https://www.example.com/example.png/"]
options:0
progress:^(NSInteger receivedSize, NSInteger expectedSize) {
NSLog(@"Image download %.02f%% complete.", (CGFloat)receivedSize/(CGFloat)expectedSize * 100);
}
completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
if(image && finished) {
NSLog(@"The image has finished downloading!");
//Perform your image related code here
}
}];
您可以将它与background tasks一起用于您的用例。