Bonjour,

J'essaye désespérément de télécharger un fichier Asynchrone et de récupérer au fur et à mesure la quantité de données téléchargés pour afficher une UIProgressBar. J'ai récupéré ce code dans le guide officiel Apple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
		NSURL *url = [NSURL URLWithString: @"https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray_Class.pdf"];
		
		
		NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
		
		
		NSString *cachePath = @"/MyCacheDirectory";
		
		NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
		NSString *myPath    = [myPathList  objectAtIndex:0];
		
		NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
		
		NSString *fullCachePath = [[myPath stringByAppendingPathComponent:bundleIdentifier] stringByAppendingPathComponent:cachePath];
		//NSLog(@"Cache path: %@\n", fullCachePath);
		
		NSURLCache *myCache = [[NSURLCache alloc] initWithMemoryCapacity: 16384 diskCapacity: 268435456 diskPath: cachePath];
		defaultConfigObject.URLCache = myCache;
		defaultConfigObject.requestCachePolicy = NSURLRequestUseProtocolCachePolicy;
		
		NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration:defaultConfigObject delegate:self delegateQueue: [NSOperationQueue mainQueue]];
		[defaultSession downloadTaskWithURL:url];
Je suis conforme à plusieurs protocoles et donc j'ai ce genre de méthodes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite {
	NSLog(@"URLSession");
}

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location {
	NSLog(@"URLSession 2");
}

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes {
	NSLog(@"URLSession 3");
}
Mais rien ne marche ou du moins, rien ne s'affiche. Apparemment il ce passe quand même quelque chose car des logs m'affichent bien l'adresse URL en réponse mais quand il s'agit d'afficher mes log (comme ceux ci-dessus) ou d'afficher mon PDF, rien. J'ai essayé avec NSURLConnection qui est semblable mais rien. C'est prévu pour du iOS6 et 7 donc j'aimerais utiliser NSURLConnection dans le cas de iOS 6 et NSURLSession pour iOS 7 et en prévision de iOS 8.

Merci pour votre aide.