我的應用程序正在從服務器下載圖像包。這是一組來自XML的直接鏈接(20-50個文件)。iPhone安全多重文件下載
如何確保整組圖像完全下載?
如果使用iPhone按鈕關閉了應用程序,如何添加一個條件以取消整個下載(並刪除所有已下載的文件)? (這些方法在AppDelegate中,而我的整個下載代碼在一些downloadviewcontroller.m中)
還有什麼我在下載幾個文件時需要擔心? (總共5-10MB)
我目前使用的代碼在下載中斷或應用程序關閉的情況下不是很安全。在後臺線程我呼籲每一個文件這種方法:
(BOOL) loadImageFromURL:(NSString *)url withName:(NSString *)filename toFolder:(NSString *)folder {
NSURL *link = [NSURL URLWithString:url];
NSFileManager *manager = [NSFileManager defaultManager];
NSString *filepath = [folder stringByAppendingPathComponent:filename];
if ([manager fileExistsAtPath:filepath]) {
return YES;
}
else
{
UIImage *image = [[UIImage imageWithData:[NSData dataWithContentsOfURL:link]] retain];
NSData *data = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0f)];
if ([data length] <= 0)
[image release];
return NO; // no data
else
{
[data writeToFile:filepath atomically:YES];
[image release];
return YES;
}
}
}
我是否對一個文件使用一個NSURLConnection,並且只是一個接一個的文件?我沒有真正看到多個文件的好例子,我已經閱讀過NSURLConnection文檔。我現在在其他線程中使用這個dataWithContentsOfURL,它工作得很好(3行代碼,而不是實現3+方法),但我擔心連接中斷或應用程序關閉。 – yosh 2011-04-26 11:30:20