웹 사이트에서 아이폰 앱으로 이미지를 저장하는 것에 관한 포럼 포스트에서 발견되었습니다. 모든 것을 하나의 것, 스피드 외에는 괜찮기 때문에 사용하고 있습니다.백그라운드에서 웹 사이트의 이미지를 iPhone 앱에 저장하는 방법 (빠른 작업)
이미지는 약 10KB이며 이미지가 하나있을 때 속도가 정상적으로 다운로드되지만 이미지가 15-20 개이면 매우 느립니다.
나는 내 iPhone에이 뉴스 응용 프로그램을 다운로드하여 다른 방법으로 이미지를 더 빨리 다운로드해야 함을 알고 있습니다.이 응용 프로그램을 다운로드하면 내 이미지 품질이 같거나 더 좋다고합니다.) 그리고 약 5 초 더 빠릅니다 (또는 그 이상).
내 질문은; 웹 사이트에서 iPhone 앱으로 이미지를 다운로드하는 또 다른 빠른 방법이 있습니까?
#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) //1
#import "downloadImage.h"
@interface downloadImage()
@end
@implementation downloadImage
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *imgUrl = @"http://somesite.com/someimage.jpg";
dispatch_async(kBgQueue, ^{
[self performSelectorOnMainThread:@selector(downloadImageFromWeb:) withObject:imgUrl waitUntilDone:YES];
});
}
-(void)downloadImageFromWeb:(NSString *)imgUrl{
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imgUrl]]];
NSArray *parts = [imgUrl componentsSeparatedByString:@"/"];
NSString *imgFilename = [parts lastObject];
[self saveImage:image:imgFilename];
}
- (void)saveImage:(UIImage*)image:(NSString*)imageName {
NSData *imageData = UIImageJPEGRepresentation(image, 100);
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:
imageName];
[fileManager createFileAtPath:fullPath contents:imageData attributes:nil];
//NSLog(@"image saved");
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Xcode와 관련된 질문의 일부가 보이지 않습니까? 아니면 하나도 없을 수도 있습니다. –
NSURLConnection을 사용하여 이미지를 다운로드해야합니다. –
다운로드 이미지는 인터넷뿐만 아니라 서버의 속도에 따라 달라집니다. –