мое приложение загружает видео из Интернета и сохраняет его в iPhone.Знать процесс загрузки для обновления UIprogressView
Я использую этот код
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setHTTPMethod:@"GET"];
NSError *error;
NSURLResponse *response;
NSString *documentFolderPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *videosFolderPath = [documentFolderPath stringByAppendingPathComponent:@"videos"];
//Check if the videos folder already exists, if not, create it!!!
BOOL isDir;
if (([fileManager fileExistsAtPath:videosFolderPath isDirectory:&isDir] && isDir) == FALSE) {
[[NSFileManager defaultManager] createDirectoryAtPath:videosFolderPath withIntermediateDirectories:YES attributes:nil error:nil];
}
NSString *filePath = [videosFolderPath stringByAppendingPathComponent:@"name.mp4"];
if ([fileManager fileExistsAtPath:filePath ] == YES) {
NSLog (@"File exists");
}
else {
NSLog (@"File not found");
NSData *urlData;
NSString *downloadPath = @"http://www.mywebsite.com/name.mp4";
[request setURL:[NSURL URLWithString:downloadPath]];
urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
BOOL written = [urlData writeToFile:filePath atomically:NO];
if (written)
NSLog(@"Saved to file: %@", filePath);
else {NSLog(@"problem");}
}
Все работает отлично, но я хочу, чтобы добавить прогресс View, чтобы указать статус загрузки.
проблема (я думаю, но я не уверен), что мой NSURLConnection не имеет себя в качестве делегата, так как методы
- (void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)data
или
-(void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite{
никогда не называются.
Я пытался использовать
urlData = [[NSURLConnection alloc] initWithRequest:request delegate:self];
, но сбои приложения, когда я пытаюсь записать файл
[urlData writeToFile:filePath atomically:NO];
Что я могу сделать? Спасибо
Хорошо, Thaks! оно работает! Но теперь у меня есть один вопрос: используя мои старые методы, я мог бы получить видео с помощью «папки с документами», это было легко ...Теперь, где видео, которое я загрузил? Как я могу узнать путь (также для проверки, если он уже существует и т. Д.)? благодаря! – JAA
Извините, я могу использовать [nameFile writeToFile: Path автоматически: NO] для записи, и 'fileExists', чтобы проверить, доступно ли это! благодаря! – JAA
Не могли бы вы уточнить ссылку. Это невозможно. Спасибо – Vinh