微信和微博分享的对于原生封装的加载图片的方法如下:
+ (NSData )loadImageDataWithImageUrl:(NSString )urlString {
NSURL *url = [NSURL URLWithString:urlString];
SDImageCache *imageCache = [SDImageCache sharedImageCache];
UIImage *image = nil;
NSData *imageData = nil;
//有缓存,从缓存中去图片
if ([imageCache imageFromMemoryCacheForKey:urlString]) {
image = [imageCache imageFromMemoryCacheForKey:urlString];
imageData = UIImageJPEGRepresentation(image, 1.0);
}else if ([imageCache imageFromDiskCacheForKey:urlString]) {
image = [imageCache imageFromDiskCacheForKey:urlString];
imageData = UIImageJPEGRepresentation(image, 1.0);
}else{
//缓存中没有图片去下载
imageData = [NSData dataWithContentsOfURL:url];
}
return imageData;
}
现在 : imageData = [NSData dataWithContentsOfURL:url]; 这句代码的效率极低,导致分享会很慢,现在求优化方法,望各位大神指点!
Bukankah anda menulis: Tiada muat turun dalam cache... semuanya dimuat turun Ia mesti sangat perlahan menggunakan kaedah asas ini.
Saya tidak begitu faham, kerana SDWebImage digunakan, mengapa kita perlu menulis kaedah lain untuk memuatkanImageData
Tambahan
Muat turun imej UIImage dan kemudian tukarkannya kepada data
Bukankah cache anda sama seperti mengeluarkan imej dan menukarnya kepada data?
@Curiousity Jika ia tiada dalam cache, ia perlu dimuat turun Adakah terdapat kaedah yang lebih baik daripada
imageData = [NSData dataWithContentsOfURL:url];
? Saya telah melihat SDWebImage, tetapi tidak ada cara untuk memuat turun imageData secara langsung!Cuba ini secara tak segerak
SDWebImageDownloader.h